insert into ecs_users(user_name,password,user_rank) values('665007','4a7d1ed414474e4033ac29ccb8653d9b',6);
...
...
...
..会有很多行,因为 user_name 会有重复 后面的password;user_rank都是定死的。
希望在插入的时候,如果user_name重复了,则不插入。没有的话就插入。
请问SQL语句怎么写啊。

解决方案 »

  1.   

    需要在存储过程里判断
    if not exists ..
      then  insert
    end if;
      

  2.   

    user_name上建立唯一索引:
    insert IGNORE into ecs_users(user_name,password,user_rank) values('665007','4a7d1ed414474e4033ac29ccb8653d9b',6);
      

  3.   


    看到这篇文章。可是不会用http://hi.baidu.com/our_poll/blog/item/46c42a120eb0be36dc540115.html
      

  4.   


    insert into ecs_users(user_name,password,user_rank) select distinct ('665007','4a7d1ed414474e4033ac29ccb8653d9b',6);
      

  5.   

    我那个系统是ecshop的不知道可不可以将user_name设置成唯一索引。
      

  6.   


    报错 Operand should contain 1 column(s) 
      

  7.   


    我那个系统是ecshop的就是不知道可不可以将user_name设置成唯一索引。这样会不会对系统有影响
      

  8.   

    建议user_name建立唯一索引,存储过程进行判断
    not exists则进行插入
      

  9.   

    不是设置为KEY,而是设置为主键或者唯一键。
      

  10.   


    唯一键的话
    insert 一堆,有一个重复了,整个sql都不执行吧?
      

  11.   

    如果是事物处理的话,会都回滚,如果不是,那就出错的insert不成功,其他的都成功。
      

  12.   

    顶二楼,将user_name 设置为unique key,用ignore忽略错误就可以了。