2012-10-15 92 views
1

我試圖在MYSQL中插入以下信息,但不斷收到上述錯誤?即使我只是試圖插入其中一個值,但它仍然不斷出錯。錯誤代碼:1136.列計數與第1行的值計數不匹配

CREATE TABLE depositor 
    (depositor_name char(30), 
    depositor_number varchar(20), 
    PRIMARY KEY (depositor_number), 
    FOREIGN KEY (depositor_name) REFERENCES depositor(depositor_name)); 

INSERT INTO depositor VALUES("Johnson", "A-101"); 
INSERT INTO depositor VALUES("Smith", "A-215"); 
INSERT INTO depositor VALUES("Hayes", "A-102"); 
INSERT INTO depositor VALUES("Hayes", "A-101"); 
INSERT INTO depositor VALUES("Turner", "A-305"); 
INSERT INTO depositor VALUES("Johnson", "A-201"); 
INSERT INTO depositor VALUES("Jones", "A-217"); 
INSERT INTO depositor VALUES("Lindsay", "A-222"); 
INSERT INTO depositor VALUES("Majeris", "A-333"); 
INSERT INTO depositor VALUES("Smith", "A-444"); 

SELECT * FROM DEPOSITOR 
+1

爲什麼你需要一個外鍵約束? –

+2

這是一種很好的編程習慣,可以實際聲明插入語句的所有列:'插入存款人(depositor_name,depositor_number)values ....'。 –

回答

1

用單引號代替雙引號:

INSERT INTO depositor VALUES('Johnson', 'A-101'); 
+0

我得到了這個類似的帳戶工作: –

+1

-1爲什麼這會有所作爲? [字符串文字](http://dev.mysql.com/doc/en/string-literals.html)可以用單引號(「'''」)或雙引號(「'」'「)括起來在任何情況下,它都不會解釋收到的特定錯誤消息:* 1136。列計數與第1行的值計數不匹配 – eggyal

+0

我希望我可以讓你看到它,但每次我複製時粘貼將其添加到頁面凍結:S –

0

外鍵引用本身,這沒有任何意義(其實我很驚訝的MySQL允許你創建它:我當我嘗試時出現錯誤;也許你的CREATE TABLE命令失敗,沒有你注意到,你正在試圖INSERT進入表沒有兩列的先前版本?)。

刪除外鍵約束(和DROP任何現有的表)。

+0

好的謝謝,它實際上是一個腳本,我和我的班級運行,並承受所有是帕格爲我們下載。在這種情況下,如果有人把它用於工作,我會感到驚訝! –

1

以防萬一。

我在表X上觸發插入和更新時出現此錯誤。插入和更新查詢沒有任何問題。我發現有觸發器插入正在更新/插入到其他表Y的行。它沒有相同數量的列。所以這是拋出這個錯誤。一旦我改變了Y的表格結構,錯誤就解決了。

+0

我以爲我瘋了或忘了如何計數。保存了我的一天。 –

相關問題