2014-12-05 59 views
5

我在mysql數據庫中創建了一個包含兩列的表'test':(age int,name TEXT)。Python中的Mysql無法使用自動增量ID插入記錄,爲什麼?

然後我用下面的代碼(與列表)中插入一條記錄:

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

上面的代碼在MySQL工作(我使用Python 2.7編程)。

然後我刪除舊錶,並要添加一個AUTO_INCREMENT的p_id場爲新表,通過添加以下代碼到CREATE TABLE SQL:

P_id int(11) PRIMARY KEY AUTO_INCREMENT, 

而新表的作品,我覺得它在MySQL中。 然而,當我嘗試使用相同的代碼插入一個新的記錄:

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

但它不工作和報告:

OperationalError: (1136, "Column count doesn't match value count at row 1") 

它看起來像我應該補充的p_id的價值我? 但是它應該自動增加,我可以忽略它? 我是一個在mysql中的新手,請幫助細節。

這是我第一次在StackOverflow中的問題,並感謝您的任何幫助。

回答

5

使用此查詢:

insert into test (age,name) values(%s,%s) 

你的代碼如下:

record = [12, 'Tom'] 
cursor.execute("insert into test (age,name) values(%s,%s)", record) 
+0

你的答案是非常及時和偉大。 – 2014-12-05 07:37:46

+0

它工作得很好。非常感謝。我現在意識到,默認設置應該更新所有的字段。在Stackoverflow中的第一次體驗非常棒。 :) – 2014-12-05 07:39:03

相關問題