2014-12-05 30 views
5

Creo una tabella 'test' con due colonne: (age int, name TEXT) nel database mysql.Mysql con Python non può inserire record con ID autoincrement, perché?

Poi inserire un record utilizzando i seguenti codici (con una lista):

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

I codici di cui sopra funzionano in MySQL (io uso Python 2.7 per la programmazione).

ho quindi eliminare la vecchia tabella e si desidera aggiungere un campo AUTO_INCREMENT p_id per la nuova tabella, aggiungendo il seguente codice al SQL CREATE TABLE:

P_id int(11) PRIMARY KEY AUTO_INCREMENT, 

E le nuove opere di tabella e lo trovo in mysql. Tuttavia, quando si tenta di inserire un nuovo record utilizzando gli stessi codici:

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

Ma non funziona e le relazioni:

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

Sembra che devo aggiungere il valore di p_id da me stessa? Ma dovrebbe aumentare automaticamente e posso ometterlo? Sono abbastanza un novizio in mysql e per favore aiuto con i dettagli.

Questa è la mia prima domanda in StackOverflow e grazie per qualsiasi aiuto.

risposta

5

utilizzare questa query:

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

Il codice sarà simile:

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

La tua risposta è così puntuale e di grande. –

+0

Funziona abbastanza bene. Grazie mille. Ora mi rendo conto che l'impostazione predefinita dovrebbe aggiornare tutto il campo. Così grande la prima esperienza in Stackoverflow. :) –