【发布时间】:2011-06-07 18:32:24
【问题描述】:
我必须在我的数据库中导入一些数据。并且表中已经存在一些记录,而不是全部。所以我想这样做:
运行 php 脚本,从输入数组向表中插入数据
使data_id在mysql表中唯一(非主键)
通过 php 脚本插入时,如果存在相同的 data_id,则不会停止执行,而是跳过该记录并接下来处理。
我想做这样的事情。
但是当 data_id 重复时我的脚本停止执行。
谁能解释我该如何处理这个问题。
我不想在数据库中应用检查 id data_id 已经存在然后跳过该记录否则插入,因为这会使页面非常慢。
【问题讨论】:
-
嗯,这是一个很难解决的矛盾。您必须使 data_id 不是唯一的,或者修复数据 - 我认为没有其他方法
-
如果不是唯一的,那么如果已经存在,我必须在整个表中应用检查。这会使页面变慢
-
我明白了。正如@predrag 所建议的那样,
INSERT IGNORE可能会有所帮助 - 相应地转换 SQL 语句会很容易