如果我在向表中添加非空列时指定了默认值...
qtecmd
... ALTER TABLE foo
ADD COLUMN bar INT DEFAULT 42 NOT NULL
列是否继续有默认值?或者是仅在添加列时使用的默认值,以指定现有行中的值?
答案 0 :(得分:1)
column-def 规则定义了新列的特征。
因此默认值适用于列,而不适用于操作:
sqlite> CREATE TABLE foo(x);
sqlite> ALTER TABLE foo ADD COLUMN bar INT DEFAULT 42 NOT NULL;
sqlite> INSERT INTO foo(x) VALUES(1);
sqlite> SELECT * FROM foo;
1|42