假设我有一个用户表,id
列是主键并自动递增。
我想尝试通过以下语句手动添加用户:
INSERT INTO table_name (id, username, password)
VALUES (?, Mike, Mike);
但我不想指定?
值,只想添加到下一行。
谢谢大家,我忘记将 id 列设置为自动递增。现在可以了。
假设我有一个用户表,id
列是主键并自动递增。
我想尝试通过以下语句手动添加用户:
INSERT INTO table_name (id, username, password)
VALUES (?, Mike, Mike);
但我不想指定?
值,只想添加到下一行。
谢谢大家,我忘记将 id 列设置为自动递增。现在可以了。
所以只是不要使用它......这样做......
并确保使用单引号插入strings
INSERT INTO table_name (username, password)
VALUES ('Mike', 'Mike');
正如您所说,您的字段是auto incremented
,SQL会自动将id
字段的值增加1
如果要手动将值插入到自动递增的列中,可以使用 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
如果 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')
这应该为您完成工作:
INSERT INTO table_name (username, password)
VALUES('username_u','password_p');
自动增量值将由 SQL 自动添加。