Pertanyaan Bagaimana cara menambahkan nilai default di SQLite?


Saya memiliki tabel yang dimodifikasi untuk menambahkan kolom status ke dalam mode ini

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

Namun SQLite tampaknya tidak menambahkan N ke kolom untuk ITEM baru yang dibuat. Apakah sintaks salah atau ada masalah dengan SQLite dan dukungannya untuk default.

Saya menggunakan SQLite 3.6.22


32
2018-02-12 19:22


asal


Jawaban:


Terlihat bagus untukku. Ini adalah Dokumen.

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

Buang skema Anda dan verifikasi struktur tabel Anda ada di sana setelah memanggil ALTER TABLE tetapi sebelum INSERT. Jika itu dalam suatu transaksi, pastikan untuk COMMIT transaksi sebelum memasukkan.

$ sqlite3 test.db ".dump"

39
2018-02-12 19:37