2011-10-02 46 views
0

我插入3000所记录的最大值,为此我只是写像Mysql的多个INSERT语句不添加的所有记录

insert into p_code (id_user_staff,user_id,postalcode,dropDownGroup) 
values 
(187,51,'AB10',1), 
(187,51,'AB11',1), 
(187,51,'AB12',1), 
(187,51,'AB13',1), 
(187,51,'AB14',1), 
(187,51,'AB15',1), 
(187,51,'AB16',1), 
(187,51,'AB21',1), .........3000 

这似乎是工作的罚款单查询,但它不是将所有的记录,其中很多都错过了。我也尝试了for循环中的每个单个查询,但这也不是添加所有记录。

+3

您应该检查是否发生了错误。 – MasterCassim

+1

你在这个表上有主键/唯一键吗?你似乎正在重复相同的值,我猜可能是主键。另外,从'AB16'你去'AB21'。也许你没有列出所有记录,这使你认为他们没有被添加? – Shef

+0

你应该检查你的表的设计,你只有邮政编码字段在你的记录中填充了新的数据,id_uder_staff,user_id,dropDownGroup对于你想要插入的3000条记录是一样的。在这里有任何主键表??? –

回答

0

我也尝试了for循环中的每个单个查询相同,但这也不是添加所有记录。

显然insert语句很好。
表中有一些限制阻止了一些值被插入。

这是一个唯一的或主键。在一个或多个字段上:
id_user_staff, user_id, dropDownGroup

或者在插入时未满足的外键约束。

或触发器触发before插入并生成错误,从而阻止插入完成。

如果你做的大插入语句,你可以使用:

SHOW ERRORS; 

之后,会给你这是停止插入(一个或多个)确切的错误(或多个)。

请参阅:http://dev.mysql.com/doc/refman/5.0/en/show-warnings.html

+0

我已经跳过了这个插入语句中的主键,因为我将ID作为主键auto_increment,并且我没有在该ID字段中添加任何值,也没有触发器或外键实现。奇怪:( – manish007

相关问题