2012-10-07 34 views
6

假設我有一張用戶表,並且id列是主鍵並自動遞增。通過SQL語句手動插入表中,但鍵是自動增量的

我想只是嘗試,並通過這條語句手動添加用戶:

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

,但我不想指定?價值,只是要添加到下一行。

謝謝大家,我忘了設置id列自動增量。它現在有效。

回答

8

所以只要不使用它......像這樣做..

並確保您使用單引號插入strings

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

正如你說你的場auto incremented,SQL會自動將id字段的值增加1

+0

謝謝,我忘了將它設置爲自動增量 – Mike

+0

@Mike您歡迎:) –

0

如果id是一個自動遞增的值,只需將該列從插入中移出,並且它將填充自動遞增的值。例如從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

如果你想手動插入值的自動遞增列,您可以使用SQL的IDENTITY_INSERT。例如

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 

,你可以在這裏閱讀更多 IDENTITY_INSERT

0

這應該爲你做的工作:

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

自動增量值將由SQL自動添加。