SQL 触发检查行是否已经存在

SQL trigger to check if row already exists

所以我有两个 tables(订单和 fabric_order)。此 sql 在另一个 table 上完成插入后触发。我不想要重复的行,所以我想检查 table (fabric_orders) 是否已经有一行的代码等于另一个 table(订单)的代码,并且仅当不存在相同代码时才插入 table (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

您不需要为其设置触发器 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