Как добавить значение по умолчанию в SQLite? - PullRequest
34 голосов
/ 12 февраля 2010

У меня была таблица, измененная таким образом, чтобы добавить к ней столбец статуса

ALTER TABLE ITEM ADD COLUMN STATUS VARCHAR DEFAULT 'N';

Однако SQLite, похоже, не добавляет N в столбец для любого нового созданного ITEM. Неверный синтаксис или есть какие-либо проблемы с SQLite и его поддержкой по умолчанию.

Я использую SQLite 3.6.22

1 Ответ

43 голосов
/ 12 февраля 2010

выглядит хорошо для меня. Вот документы .

sqlite> create table t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE);
sqlite> .table
t1
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE);
COMMIT;

sqlite> alter table t1 add column status varchar default 'N';
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (id INTEGER PRIMARY KEY, name TEXT, created DATE, status varchar default 'N');
COMMIT;

sqlite> insert into t1 (name) values ("test");
sqlite> select * from t1;
1|test||N

Дамп вашей схемы и проверка , что ваша структура таблицы существует после вызова ALTER TABLE, но до INSERT. Если он находится в транзакции, убедитесь, что совершили транзакцию до вставки.

$ sqlite3 test.db ".dump"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...