2013-04-19 15 views
8

Vorrei inserire i valori nella colonnadella tabella innodb mysql.Come inserire i valori nella colonna dell'identità automatica in MYSQL

Sto caricando alcuni dati da una vecchia tabella in una nuova tabella che ha un'identità e devo conservare i valori esistenti dalla vecchia tabella, quindi devo conservare i valori esistenti Id, ma mantenere la colonna Auto_Increment per la nuova valori.

In MS T-SQL, avviare lo script di query insert con SET SET IDENTITY_INSERT MyTable ON e terminare la query con SET SET IDENTITY_INSERT MyTable OFF.

Come posso fare lo stesso in MySQL?

+0

Perché? Il valore che MySQL fornisce automaticamente non è adatto? –

+0

Perché la colonna è un'identità automatica se è necessario inserirla? –

+0

Le colonne di identità automatica vengono compilate automaticamente da MySQL. Se si desidera un numero diverso, è necessario mantenere un campo separato. –

risposta

5

basta fare come al solito:

INSERT INTO my_table(auto_inc_field, other_field) VALUES(8547, 'some value'); 

Se i valori sono ritornassi da un'altra tabella, è possibile utilizzare:

INSERT INTO my_table(auto_inc_field, other_field) 
SELECT auto_inc_field, other_field FROM other_table; 
+2

E se si importano dati, si ottiene un nuovo valore ID che verrà generato se il numero intero in auto_inc_field è 0 o NULL. "violazione del vincolo di chiave esterna xxx". Questa risposta merita di essere downvoted piuttosto che la domanda ... –

+0

Se qualcuno si imbatte in questo proprio come me, e hai inserito le righe con un ID. È possibile impostare manualmente auto_inc_field utilizzando 'ALTER TABLE test AUTO_INCREMENT = 10' - dove 10 è il valore successivo da utilizzare per una riga inserita. –

Problemi correlati