INSERT IGNORE无法正常工作

时间:2015-07-11 11:33:18

标签: php mysql

如果表中不存在整行,我想插入表中。我的代码如下:

$insert_sql="insert ignore into indexes(id,user_id,course_id,index) values
             ('','".$row2['user_id']."','".$course_id."','".$index."')";
mysqli_query($db,$insert_sql);

但它会插入重复的行

1 个答案:

答案 0 :(得分:0)

insert ignore忽略所有错误。如果您试图避免重复,那么我建议您使用on duplicate key update。这只会忽略重复的一个错误。

首先定义重复键:

 create unique index idx_indexes_col1_col2 on indexes(col1, col2)

(无论你想要什么,都是唯一的)。

然后insert喜欢:

insert into indexes(col1, col2, . . . )
    values (. . . )
    on duplicate key update col1 = values(col1);

col = values(col1)并没有真正做任何事情 - 价值不会改变。但它确实可以防止一个错误。