有一张产品表
CREATE TABLE products(
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(40) NOT NULL,
product_description VARCHAR(220) NOT NULL,
...
)
书签表:
CREATE TABLE bookmarks_products(
bookmark_id SERIAL PRIMARY KEY,
product_id INTEGER NOT NULL REFERENCES products,
user_id INTEGER NOT NULL REFERENCES users
);
像表:
CREATE TABLE likes_products(
like_id SERIAL PRIMARY KEY,
product_id INTEGER NOT NULL REFERENCES products,
user_id INTEGER NOT NULL REFERENCES users
);
评论表:
CREATE TABLE comments(
comment_id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users,
product_id INTEGER NOT NULL REFERENCES products,
parent_id INTEGER,,
user_name VARCHAR(40) NOT NULL,
...
);
我正在删除例如产品编号 1:
DELETE FROM COMMENTS WHERE PRODUCT_ID = 1;
创建表格时,我为表格创建了辅助键(喜欢、书签、评论)。
如何从产品表中删除产品编号 1,并从所有表(喜欢、书签、评论)中删除它?
设置记录的级联删除,或“手动”删除 - 首先是所有子记录,然后是主记录
ON DELETE CASCADE声明外键时使用构造。然后您的 DBMS 将自动从此类链接表中删除子记录。创建带有注释的表的示例:
文档中的更多详细信息