首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

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

2012-03-04 
mysql触发器里更改表自增值的问题DELIMITER //CREATE TRIGGER getauto BEFORE INSERT ON autotest FOR EAC

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

热点排行