访问sql中的自动增量不起作用

时间:2010-04-13 10:41:52

标签: sql database ms-access

如何在访问中创建一个包含自动增量的表。这是我一直在做的但没有工作。

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)  
)

4 个答案:

答案 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 KEYId 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, "****","","")