在我的PostgreSQL数据库中,我有以下表格(简化):
CREATE TABLE quotations (
receipt_id bigint NOT NULL PRIMARY KEY
);
CREATE TABLE order_confirmations (
receipt_id bigint NOT NULL PRIMARY KEY
fk_quotation_receipt_id bigint REFERENCES quotations (receipt_id)
);
我的问题如下:
我有与之前报价相关的订单(这很好,因为我可以使用FK字段将此类订单附加到引用的报价中),但我也从零开始订购了匹配的报价.当然,如果数据库允许,FK字段将为空.不幸的是,由于violated外键约束,在INSERT语句中try 将fk_quotation_receipt_id
设置为NULL时,我得到了error.
在设计这些表时,我仍然使用PgSQL 8.2,它允许空值.现在我有了9.1.6,它不允许这样.
我想要的是optional (or nullable)外键约束order_confirmations
(fk_quotation_receipt_id
)→ quotations (receipt_id)
.我在官方PgSQL文档中找不到任何提示,其他用户发布的类似问题已经很老了.
谢谢你提供的有用提示.