2011-10-02 19 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