ALTER TABLE tbl_status ADD COLUMN status_default TEXT;
http://www.sqlite.org/lang_altertable.html
However, adding columns to SQLite is limited. You cannot add a column anywhere but after the last column in the table.
Regarding verifying that a column already exists, PRAGMA table_info(tbl_status); will return a table listing the various columns of your table.
ADD ON:
I use a strategy in database design that allows me to discern which changes are needed. To do this, you will need a new table (name it DBInfo ), with one field (Integer, name it SchemaVersion ). In addition, inside SQLite is called the internal value user_version , which can be set using the PRAGMA . Your code can, at program startup, check the version number of the circuit and apply the changes accordingly, one version at a time.
Assume a function called UpdateDBSchema() . This function will check your version of the database schema, not process DBInfo and determine that the database is in version 0. The rest of this function may just be a large switch with different versions nested in a loop (or an accessible different structure to your choice platform) .
So, for this first version, use the UpgradeDBVersion0To1() function, which will create this new table ( DBInfo ), add your status_default field and set SchemaVersion to 1. In your code, add a constant that indicates the latest version of the circuit, say LATEST_DB_VERSION , and set it to 1 Thus, your code and your database have a version of the schema, and you know that you need to synchronize them if they are not equal.
When you need to make another change to your schema, set the LATEST_DB_VERSION constant to 2 and create a new function UpgradeDBVersion1To2() that will make the necessary changes.
Thus, your program can be easily ported, can connect and update an old database, etc.