触发器--控制主键自增长度

需求:检查数据中的表productid必须为10。
思路:通过触发器对表进行检查,如果超出则提示“数据自动编号溢出,请联系系统管理员”
步骤:
1、首先建立表级触发器,因为是插入(insert)。--错误应该是行级触发器
2、插入前检查productid的长度如果超出,则抛出异常。


CREATE OR REPLACE TRIGGER t_pdtinfo_pk 
BEFORE INSERT ON productinfo 
FOR EACH ROW
BEGIN
   IF inserting THEN 
      IF( LENGTH(:new.productid) ) > 10  THEN 
         RAISE_application_error(-20000,'数据自动编号溢出,请联系系统管理员')  ;
      END IF ;
   END IF;
END;


SELECT * FROM productinfo 
INSERT INTO productinfo VALUES ('02400100011','天堂伞',879,45,'0100010001','中国_','日用品');

你可能感兴趣的:(触发器--控制主键自增长度)