批量插入mysql - 我可以使用ignore子句吗?没有限制.批量插入记录?

Kim*_*cks 12 php mysql bulkinsert

我有一堆数据,我想插入,我已决定使用批量插入mysql.

插入朋友(请求者,伙伴)值(value1,value2),(value2,value1),(value3,value4),(value4,value3),...

我想知道以下内容:

1)我可以使用忽略吗?例如

将ignore插入到friends(requestor,buddy)值(value1,value2),(value2,value1),(value3,value4),(value4,value3),...

如果我有重复会怎么样?它会a)不插入一切吗?b)在重复记录之前插入记录并在此之后停止处理数据?c)忽略重复并继续休息?

2)没有限制.我可以用于这样的批量插入的记录?

谢谢.

Sas*_*sha 20

是的,您可以使用"ignore"关键字,它只会忽略重复的错误.它将插入它可以的每一行,跳过那些会导致重复的行(并且它不会停止处理数据.)如果你做这样的事情(我们假设第一列是主键):

将ignore插入c值(1,1),(2,2),(3,3),(3,5),(4,5);

那意味着将插入(3,3)而(3,5)将不插入.除了(3,5)之外的所有东西都将被插入(假设一张新桌子.)

可能没有硬性限制,但您可能希望进行测试以查看应根据需要绘制线的位置.

编辑:似乎MySQL对SQL查询的大小有可配置的限制,默认值为1MB.更多信息:http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_query_cache_limit.


Ste*_*hry 6

INSERT查询可能有50,000行的限制.