我有两个表 - 一个是产品,一个是ProductSearchResult。PostgreSQL ON INSERT CASCADE
每当有人试图插入一个信息搜索结果与未在产品表的外键约束是violattet上市的产品,因此,我得到一个错误。
我想知道我能得到我的数据库中自动创建的产品表失踪产品(就产品ID,所有其他属性可以留空)
有没有这样的东西作为CASCADE插入?如果有的话,我无法得到它的工作。
规则在插入后得到执行,因为我们事先得到一个错误,如果您使用“也请”也没有用。如果您使用“DO INSTEAD”并在末尾添加INSERT命令,则最终会导致无限递归。
我认为一个触发器是要走的路 - 但我所有的尝试写一个失败。
有什么建议吗?
表结构:
CREATE TABLE Product (
ID char(10) PRIMARY KEY,
Title varchar(150),
Manufacturer varchar(80),
Category smallint,
FOREIGN KEY(Category) REFERENCES Category(ID) ON DELETE CASCADE);
CREATE TABLE ProductSearchResult (
SearchTermID smallint NOT NULL,
ProductID char(10) NOT NULL,
DateFirstListed date NOT NULL DEFAULT current_date,
DateLastListed date NOT NULL DEFAULT current_date,
PRIMARY KEY (SearchTermID,ProductID),
FOREIGN KEY (SearchTermID) REFERENCES SearchTerm(ID) ON DELETE CASCADE,
FOREIGN KEY (ProductID) REFERENCES Product ON DELETE CASCADE);
触发器和过程语言是继续这个的一种方式。 – bos