我有个表原来是num做主键的,后来发现num和person是多对多的关系,所以另外加个主键,但插入新纪录时想让num和id一致保持唯一
id(主键)  num   person写了个insert触发器如下:
mysql> create trigger tri
    -> before insert on test
    -> for each row
    -> set new.num=new.id \g
但报了个错:ERROR 1054 (42S22): Unknown column 'id' in 'NEW'
我觉得它报这个错误应该是在插入新记录前,id(主键)的值未知,所以不知道该给num取什么值,这个问题怎么解决呢?请大家帮帮忙呀!如果想解决num和person多对多的问题有没有其他好些的方法呢?谢谢大家了

解决方案 »

  1.   

    估计你的id 是auto_increment的吧,这样id在insert 发生前是不会产生新的结果的。你可以在after 事件中试试。最好提供你的create table 语句,这样方便别人测试。当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  2.   

    id是auto_increment的,开始用的就是after事件,但提示我insert中不能用after
    这个是建表语句请大家帮帮忙
    CREATE TABLE `walnut_beta`.`New Table` (
      `id` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `num` INTEGER(10) UNSIGNED NOT NULL DEFAULT 0,
      `person` VARCHAR(45),
      PRIMARY KEY (`id`)
    )
    ENGINE = InnoDB;