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
。
答案 0 :(得分:0)
DEFAULT NULL
是默认值;你不需要指定它。
FOREIGN KEY
用于引入表约束,但ALTER TABLE仅支持列约束。列约束的语法没有FOREIGN KEY
:
ALTER TABLE Customers ADD AddressID INTEGER REFERENCES MasterAddress(AddressID);