在SQLite中,如何更改表以添加具有默认空值和外键约束的列?

时间:2018-04-16 15:57:15

标签: sqlite

SQLite文档说:

  

无法使用“ALTER TABLE ... ADD COLUMN”语法   添加包含REFERENCES子句的列,除非是默认值   新列的值为NULL。

我无法让我的ALTER TABLE声明工作,它看起来像这样:

ALTER TABLE Customers ADD COLUMN AddressID INTEGER DEFAULT NULL FOREIGN KEY REFERENCES MasterAddress (AddressID);

我可以看到在CREATE TABLE时创建约束并通过新表反弹数据的变通方法的引用,但我更愿意更改现有表。这可能吗?

我已设置PRAGMA foreign_keys = ON

1 个答案:

答案 0 :(得分:0)

DEFAULT NULL是默认值;你不需要指定它。

FOREIGN KEY用于引入表约束,但ALTER TABLE仅支持列约束。列约束的语法没有FOREIGN KEY

ALTER TABLE Customers ADD AddressID INTEGER REFERENCES MasterAddress(AddressID);