已知表A,要实现如下功能:当表A的记录超过1W条时,则删除第一条记录;即保证数据库中表A只有1W条最新记录。
用触发器实现,代码如何写?请教了!

解决方案 »

  1.   

    不能,在MYSQL TRIGGER中,不能对本表进行操作
      

  2.   

    create trigger TRI_TEST
    before insert on A
    for each row
    begin
      if (select count(*) from A)>=10000 then
       delete  from A where ID=(select min(ID) from A)
      end if
    end
      

  3.   

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end if 
      

  4.   

    delimiter $$
    create trigger TRI_TEST
    before insert on A
    for each row
    begin
     if (select count(*) from A)>=10000 then
     delete from A where ID=(select min(ID) from A);
     end if;
    end$$
    delimiter ;
    自己试试
      

  5.   


    大哥,我按照这个做法触发器建立成功,可是当插入数据的时候会不给插入数据。然后我在网上看了很多好像跟你第一次说的一样,Mysql不允许A表触发器操作A表??