mysql触发器限制为id列插入的行数

qnzebej0  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我想我的网站的用户提交数据与我的html格式。但是,我希望每个用户被限制为5提交总数。为此,我使用mysql dml触发器将我的列“um\u id”限制为每个id只有五行。但是,我知道我的语法是错误的,我请求这里的任何人帮助更正它,以便它能够实际工作。
现在我正在phpmyadmin中测试这个,它最终将被放在我的php文件中。所以um\u id将有一个值并与这个sql触发器连接。

CREATE TRIGGER ml_trigger 
BEFORE INSERT 
ON ml_character;
BEGIN
IF ( SELECT . 'um_id' . COUNT(*) > 5 ) THEN ROLLBACK;
END IF;
pxyaymoc

pxyaymoc1#

像这样:

DELIMITER $$

CREATE TRIGGER ml_trigger_bi 
BEFORE INSERT
ON ml_character
FOR EACH ROW
BEGIN
   -- get count of existing rows with same um_id
   DECLARE li_cnt BIGINT;
   SELECT COUNT(*) AS cnt
     FROM ml_character t
    WHERE t.um_id = NEW.um_id
     INTO li_cnt ;
   -- if already five rows, throw error
   IF li_cnt >= 5 THEN
      SIGNAL '45000' SET MESSAGE_TEXT = 'Already five rows in ml_character';
   END IF;
END$$

DELIMITER ;

价值 um_id 要检查的将来自插入的行;我们将该值引用为 NEW.um_id .

相关问题