【问题标题】:In SQLite, how do I alter a table to add a column with default null and foreign key constraint?在 SQLite 中,如何更改表以添加具有默认 null 和外键约束的列?
【发布时间】:2018-04-16 15:57:15
【问题描述】:

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

【问题讨论】:

    标签: sqlite


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,让我继续前进。
    猜你喜欢
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多