Подтвердить что ты не робот

Как добавить значение по умолчанию в SQLite?

У меня была таблица, модифицированная для добавления столбца статуса в этом виде

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

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

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

4b9b3361

Ответ 1

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

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. Если в транзакции убедитесь, что COMMIT транзакция перед вставкой.

$ sqlite3 test.db ".dump"