我的触发器在MySQL中导致错误#1442有什么问题?

时间:2016-11-08 15:41:32

标签: mysql database

我有桌子:

CREATE TABLE CUSTOMER (
 CUSTID              NUMERIC(6) NOT NULL,
 NAME                CHAR (45),
 ADDRESS             CHAR (40),
 CITY                CHAR (30),
 STATE               CHAR (2),
 ZIP                 CHAR (9),
 AREA                NUMERIC(3),
 PHONE               CHAR (9),
 REPID               NUMERIC(4) NOT NULL,
 CREDITLIMIT         NUMERIC(9,2),
 COMMENTS            TEXT,
 CONSTRAINT CUSTOMER_PRIMARY_KEY PRIMARY KEY (CUSTID))
 AUTO_INCREMENT = 109;

和触发器:

DELIMITER |
CREATE TRIGGER trigger_check_custid 
BEFORE INSERT ON CUSTOMER
 FOR EACH ROW BEGIN
   IF new.CUSTID > 0 THEN
    INSERT INTO CUSTOMER
    VALUES (new.CUSTID);
    END IF;
  END; 
|
DELIMITER ;

作为约束检查的替代,但是当我的SQL代码中的值进一步插入表中时,我得到错误#1442(无法更新存储函数/触发器中的表'CUSTOMER',因为它已经被使用by语句调用此存储的函数/触发器。)

我读到这与MySQL有关,可以防止潜在的递归,但我对SQL很新,不知道在哪里可以识别错误。可能导致什么呢?

提前致谢。

0 个答案:

没有答案