所以我有两个表(orders和fabric_order)。在另一个表上完成插入后,将触发此sql。我不希望重复的行,所以我想检查表(fabric_orders)是否已包含一行代码,该行的代码等于其他表(订单)中的代码,并且仅当不存在该行时才插入表(fabric_order)中。相同的代码
IF NOT EXISTS
(
select code
from orders
WHERE code=fabric_order.code
)
INSERT INTO fabric_order (order_id, code, start_date)
SELECT(id, code, deliver_date)
FROM orders
答案 0 :(得分:2)
您不需要触发它,INSERT ... SELECT ... LEFT JOIN ..
也应具有相同的结果。
INSERT INTO fabric_order AS fabric_order_outer (
fabric_order_outer.order_id
, fabric_order_outer.code
, fabric_order_outer.start_date
)
SELECT(
orders.id
, orders.code
, orders.deliver_date
)
FROM orders
LEFT JOIN
fabric_order AS fabric_order_inner
ON
orders.code = fabric_order_inner.code
WHERE
fabric_order_inner.order_id IS NULL