添加列期间和之后的默认列值

时间:2015-09-30 11:26:29

标签: sqlite

如果我在向表中添加非空列时指定了默认值...

qtecmd

... ALTER TABLE foo ADD COLUMN bar INT DEFAULT 42 NOT NULL 列是否继续有默认值?或者是仅在添加列时使用的默认值,以指定现有行中的值?

1 个答案:

答案 0 :(得分:1)

documentation说:

  

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