如何在访问中创建一个包含自动增量的表。这是我一直在做的但没有工作。
CREATE TABLE People_User_Master(
Id INTEGER primary key AUTOINCREMENT,
Name varchar(50),
LastName varchar(50),
Userid varchar(50) unique,
Email varchar(50),
Phone varchar(50),
Pw varchar(50),
fk_Group int,
Address varchar(150)
)
答案 0 :(得分:2)
删除INTEGER(与AUTOINCREMENT冲突)
CREATE TABLE People_User_Master(
Id AUTOINCREMENT primary key ,
Name varchar(50),
LastName varchar(50),
Userid varchar(50) unique,
Email varchar(50),
Phone varchar(50),
Pw varchar(50),
fk_Group int,
Address varchar(150)
)
答案 1 :(得分:1)
尝试在最后添加约束
CREATE TABLE People_User_Master(
Id AUTOINCREMENT
, Name varchar(50)
, LastName varchar(50)
, Userid varchar(50) unique
, Email varchar(50)
, Phone varchar(50)
, Pw varchar(50)
, fk_Group int
, Address varchar(150)
, CONSTRAINT id_pk PRIMARY KEY(Id)
)
已更新以符合实际答案(不允许在INTEGER
列上定义AUTOINCREMENT
)。将PRIMARY KEY
与Id AUTOINCREMENT
放在同一行可以正常工作。
答案 2 :(得分:1)
您可以使用IDENTITY(Jet4 +支持)
来完成CREATE TABLE People_User_Master
(
ID IDENTITY (1, 1),
Name ..
失败;
ID AUTOINCREMENT,
应该有效(注意你没有指定类型)
答案 3 :(得分:0)
它可能正常工作,但如果在Column子句中尝试使用带有ID的INSERT INTO,则可能会失败。这似乎覆盖了MS Access AUTOINCREMENT。
这会尝试插入ID = 1的记录,绕过AUTOINCREMENT
INSERT INTO People_User_Master
(Id, Name, LastName, Userid, Email, Phone, Pw, fk_Group, Address)
VALUES (1, "John", "Smith", "JS100", "JS@MyMail.Net", 12345678, "****","","")
省略ID可让AUTOINCREMENT正常运作。
INSERT INTO People_User_Master
(Name, LastName, Userid, Email, Phone, Pw, fk_Group, Address)
VALUES ("John", "Smith", "JS100", "JS@MyMail.Net", 12345678, "****","","")