Pregunta Cómo agregar valor predeterminado en SQLite?


Tengo una tabla modificada para agregarle una columna de estado de esta manera

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

Sin embargo, parece que SQLite no agrega N a la columna para cualquier ARTÍCULO nuevo creado. ¿Es incorrecta la sintaxis o hay algún problema con SQLite y su compatibilidad con los valores predeterminados?

Estoy usando SQLite 3.6.22


32
2018-02-12 19:22


origen


Respuestas:


Me parece bien. Aquí están los Documentos.

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

Vuelca tu esquema y verifica que su estructura de tabla está allí después de llamar ALTER TABLE pero antes de INSERTAR. Si está en una transacción, asegúrese de COMPROMETER la transacción antes del inserto.

$ sqlite3 test.db ".dump"

39
2018-02-12 19:37