mysql触发器里更改表自增值的有关问题

mysql触发器里更改表自增值的问题

DELIMITER //

CREATE TRIGGER getauto BEFORE INSERT ON autotest FOR EACH ROW

BEGIN

DECLARE i INT;

DECLARE cou INT;

DECLARE num INT;

SET i=0;

SELECT id INTO cou FROM autotest;

WHILE i<=cou DO

SET i=i + 1;

SELECT id INTO num FROM autotest WHERE id=i;

IF num<>i THEN

  ALTER TABLE autotest AUTO_INCREMENT=i;

  SET cou=0;

  END IF;  

END WHILE;

IF num=i THEN

  ALTER TABLE autotest AUTO_INCREMENT=i+1;

  END IF;  

END//

在运行时

ALTER TABLE autotest AUTO_INCREMENT=i;

这里出了问题 如果把i换成数值就可以,问什么用变量就不行了

各位大侠救救小弟!!!!!




TRIGGER不能针对目表操作!!!




MYSQL TRIGGER不能对本表操作




理论上主键是不应该再变动的。

如果你实现要在表中设置这个需要根据记录变化的ID,则建议再添加一个字段来放这个ID,然后定期使用update 来更新这个字段。

mysql触发器里更改表自增值的有关问题

相关文章:

你感兴趣的文章:

标签云: