下面是我的更新触发器语句
drop trigger if exists updateproductstrigger;
delimiter //
create trigger updateproductstrigger after update on products
for each row
begin
insert into old_products(select * from OLD);
insert into new_products(select * from NEW);
end //
delimiter ;执行以下更新语句
update products
set prod_price=prod_price+1
where prod_id=1;
系统提示如下:
ERROR 1146 (42S02): Table 'execise.OLD' doesn't exist
不是说old表和new表系统自动创建吗?到底怎么回事!mysql存储过程

解决方案 »

  1.   

    insert into old_products values(old.a,old.b)
      

  2.   

    drop trigger if exists updateproductstrigger;
    delimiter //
    create trigger updateproductstrigger after update on products
    for each row
    begin
        insert into old_products(id,name) values (old.id,old.name);
        insert into new_products(id,name) values (new.id,new.name);
    end //
    delimiter ;
      

  3.   

    如果要保存旧记录,在MYSQL中,要1个1个字段地写
    insert into old_products values(old.a,old.b,old.c...)
    insert into new_products values(new.a,new.b,new.c...)
      

  4.   

    drop trigger id exists updateproducttrigger;
    delimiter//
    create trigger updateproductstrigger after update on products
    for each row
    begin
    insert into old_products(id,name) values(old.id,old.name);
    insert into new_products(id,name) values(new.id,new.name);
    end //
    delimiter;