CREATE TRIGGER  t_insertonlineuser_before_insert
BEFORE INSERT ON online_user_tb
FOR EACH ROW
BEGIN
   //伪代码   if exists (select 1 from online_user_tb) then
       update online_user_tb;
   else
       insert online_user_tb
   end if;
   
  ----------------------------------------------之后不在执行insert语句
END---------------这样可行吗?

解决方案 »

  1.   

    MySQL 的触发器无法实现这种功能。可以按一楼的方法用 INSERT .... ON DUPLICATE KEY UPDATE ...INSERT INTO table (a,b,c) VALUES (1,2,3)
      ON DUPLICATE KEY UPDATE c=c+1;具体用法和例子可以参考一下官方文档中的说明。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    看起来不错 mysql不支持?
    那只能用版主的方法了
      

  3.   

    1、mysql下不支持“if exists ...”这样的写法
    2、mysql下,触发器内部不允许对自己进行update
      

  4.   

    使用replace into也可以。