我有一个包含两个表foo
和foo_trash
的数据库。
两者都有相同的结构,都有一个id
(主键),title
. foo_trash使用从foo复制的数据填充,语句如下:INSERT INTO foo_trash (SELECT * FROM foo WHERE id = 253)
我想在表foo_trash上添加一个constraint
,这样,如果foo中没有相同的id和title对,就不会向foo_trash中插入行。
我该怎么写呢?
我有一个包含两个表foo
和foo_trash
的数据库。
两者都有相同的结构,都有一个id
(主键),title
. foo_trash使用从foo复制的数据填充,语句如下:INSERT INTO foo_trash (SELECT * FROM foo WHERE id = 253)
我想在表foo_trash上添加一个constraint
,这样,如果foo中没有相同的id和title对,就不会向foo_trash中插入行。
我该怎么写呢?
1条答案
按热度按时间w8f9ii691#
给定表foo:
定义表foo_trash以引用您提到的两列:
现在您可以将数据插入foo:
如果你试图在foo_trash中插入一行,而foo中不存在这一行,你会收到一个错误:
输出:
您可以在foo_trash中插入一行,该行存在于foo:
假设id存在,你可以成功地以select from foo的形式插入foo_trash: