insert into ta(c1,c2,c3,c4,c5)value('xx',3,4,'ee','ww')
我想在插入之前判断 c1,c2,c3 的('xx',3,4) 是否在ta表已经有了如果有 就不插入。如果无 就插入
----------------------------------

IF NOT EXISTS (SELECT ID FROM ta WHERE ID = 0) THEN
  INSERT INTO ta (ID) VALUES (2)
ELSE
  BEGIN END
END IF
报错  Error Code : 1064

解决方案 »

  1.   

    要用SP
    OR
    在C1、C2、C3上建立唯一联合索引,用REPLACE INTO插入
      

  2.   

    create procedure sp1()
    begin
    if not exists (select 1 from ta where c1='xx' and c2=3 and c3=4) then
       insert into ta(c1,c2,c3,c4,c5)value('xx',3,4,'ee','ww');
    end if;
    end ;MYSQL的代码块必须是包含在存储程序里面的,不能单独写。
      

  3.   


    应该用IGNORE关键字,这个才会丢弃,REPLACE是覆盖了。
      

  4.   

    o let me try right now 
      

  5.   

    设置 c1,c2,c3 为主键或者唯一索引。然后使用IGNORE就行了。