2012-10-07 11 views
6

Załóżmy, że mam tabelę użytkowników, a kolumna id to klucz podstawowy i automatyczna inkrementacja.Wstaw ręcznie do tabeli za pomocą instrukcji SQL, ale klucz jest automatycznie zwiększany

Chcę po prostu spróbować i dodać użytkownika ręcznie za tym stwierdzeniem:

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

ale nie chcę, aby określić wartość ?, po prostu chcą dodać do następnego wiersza.

Dziękuję wszystkim, że zapomniałem ustawić kolumnę id na auto inkrementacji. Teraz działa.

Odpowiedz

8

Więc po prostu go nie używam ... zrobić to tak ..

I upewnij się używać apostrofów do wrzucania strings

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

Jak powiedziałeś swojej dziedzinie jest auto incremented, SQL automatycznie zwiększy wartość pola id o 1

+0

Dzięki, zapomniałem ustawić automatyczną inkrementację – Mike

+0

@Mike Powitanie :) –

0

Jeśli id ​​jest automatycznie zwiększaną wartością, po prostu zostaw tę kolumnę poza insertem i wypełni automatycznie zwiększoną wartością. Na przykład od 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

Jeśli chcesz ręcznie wprowadzić wartość auto zwiększany kolumny można użyć IDENTITY_INSERT SQL. na przykład

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 

można przeczytać więcej tutaj IDENTITY_INSERT

0

Należy to zrobić dla ciebie zadanie:

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

Wartość AutoIncrement zostanie automatycznie dodany przez SQL.

Powiązane problemy