2012-10-07 10 views
6

Diciamo che ho una tabella di utenti e la colonna id è la chiave primaria e incrementata automaticamente.Inserimento manuale in una tabella mediante istruzione SQL, ma la chiave è autoincrementata

voglio provare solo e aggiungere utente manualmente da questa dichiarazione:

INSERT INTO table_name (id, username, password) 
VALUES (?, Mike, Mike); 

ma non voglio per specificare il valore ?, voglio solo aggiungere alla riga successiva.

Grazie a tutti, ho dimenticato di impostare la colonna id per l'incremento automatico. ora funziona.

risposta

8

Quindi, solo non utilizzarlo ... fare in questo modo ..

ed essere sicuri di utilizzare le virgolette singole per l'inserimento strings

INSERT INTO table_name (username, password) 
VALUES ('Mike', 'Mike'); 

Come ha detto il vostro campo è auto incremented, SQL incrementerà automaticamente il valore del campo id di 1

+0

Grazie, ho dimenticato di impostarlo su incremento automatico – Mike

+0

@Mike benvenuto :) –

0

Se id è un valore a incremento automatico, lasciare tale colonna fuori dall'inserto e verrà compilato con il valore incrementale automatico. Per esempio da Bol http://msdn.microsoft.com/en-us/library/aa933196(v=SQL.80).aspx

CREATE TABLE new_employees 
(
id_num int IDENTITY(1,1), 
fname varchar (20), 
minit char(1), 
lname varchar(30) 
) 

INSERT new_employees 
    (fname, minit, lname) 
VALUES 
    ('Karin', 'F', 'Josephs') 

INSERT new_employees 
    (fname, minit, lname) 
VALUES 
    ('Pirkko', 'O', 'Koskitalo') 
3

Se si desidera inserire manualmente un valore a una colonna incrementato automatica è possibile utilizzare l'IDENTITY_INSERT di SQL. per esempio

SET IDENTITY_INSERT MyTable ON 
insert into MyTable(id, name) values (1,'asdf'); 
insert into MyTable(id, name) values (3,'htgfds'); 
insert into MyTable(id, name) values (123,'dsfg'); 
SET IDENTITY_INSERT MyTable OFF 

si può leggere di più qui IDENTITY_INSERT

0

Questo dovrebbe fare il lavoro per voi:

INSERT INTO table_name (username, password) 
VALUES('username_u','password_p'); 

Il valore autoincremento verrà aggiunto automaticamente da SQL.

Problemi correlati