ALTER TABLE tbl_status ADD COLUMN status_default TEXT;
http://www.sqlite.org/lang_altertable.html
При этом добавление столбцов в SQLite ограничено. Вы не можете добавить столбец нигде, кроме последнего столбца в таблице.
Что касается проверки, если столбец уже существует, PRAGMA table_info(tbl_status);
вернет таблицу, в которой перечислены различные столбцы вашей таблицы.
ДОБАВИТЬ НА:
Я использую стратегию в дизайне базы данных, которая позволяет мне определить, какие модификации требуются. Для этого вам понадобится новая таблица (назовите ее DBInfo
) с одним полем (целое число, назовите ее SchemaVersion
). Кроме того, в SQLite также есть внутреннее значение, называемое user_version
, которое можно установить с помощью команды PRAGMA
. Ваш код может при запуске программы проверить номер версии схемы и соответственно применить изменения, по одной версии за раз.
Предположим, функция называется UpdateDBSchema()
. Эта функция проверит версию вашей схемы базы данных, обработает отсутствующую там DBInfo и определит, что база данных находится в версии 0. Остальная часть этой функции может быть просто большим коммутатором с разными версиями, вложенными в цикл (или другой доступной структурой). на платформу по вашему выбору).
Таким образом, для этой первой версии есть функция UpgradeDBVersion0To1()
, которая создаст эту новую таблицу (DBInfo
), добавит ваше поле status_default
и установит SchemaVersion
в 1. В вашем коде добавьте константу это указывает на последнюю версию схемы, скажем, LATEST_DB_VERSION
, и установите ее равной 1. Таким образом, ваш код и база данных имеют версию схемы, и вы знаете, что вам нужно синхронизировать их, если они не равны.
Когда вам нужно внести еще одно изменение в свою схему, установите для константы LATEST_DB_VERSION
значение 2 и создайте новую функцию UpgradeDBVersion1To2()
, которая будет выполнять необходимые изменения.
Таким образом, ваша программа может быть легко портирована, может подключаться и обновлять старую базу данных и т. Д.