Мне изменили таблицу для добавления столбца состояния к нему этим способом
ALTER TABLE ITEM ADD COLUMN STATUS VARCHAR DEFAULT 'N';
Однако SQLite, кажется, не добавляет N к столбцу ни для какого нового созданного ОБЪЕКТА. Синтаксис неправильно или там любая проблема с SQLite и его поддержкой значений по умолчанию.
Я использую SQLite 3.6.22
По-моему, выглядит хорошо. Вот документы.
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"