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 来更新这个字段。