问题描述
|
我已经分别为INSERT和UPDATE创建了触发器。在Schema1中进行插入时,触发器将在Schema2中插入一行。表格:
模式1.Temp1
模式2.Temp2
触发器创建成功。
但是当我在
Temp1
中插入数据时,它给我Temp2
的错误-复制密钥。 Temp2
还有另外两个表的约束。是什么原因引起的,如何解决?
解决方法
调用触发器时,尝试在Table2上写(如您所知)。
您尚未使用在Temp2中存在Temp1行的条件编写过INSERT查询的Peraph。
您的查询必须是以下类型:
INSERT INTO Table2 (field list)
SELECT field list
FROM inserted
WHERE NOT EXISTS(SELECT \'key\' in Table2 t2 where t2.id = inserted.field_of_key)
这样,您可以防止重复键,因此,如果您也想在插入中更新table2,则可以在该键已存在时编写UPDATE语句。
告诉我是否可以