【问题标题】:autoincrement in access sql is not working访问 sql 中的自动增量不起作用
【发布时间】:2025-12-20 04:05:12
【问题描述】:

如何创建具有自动增量访问权限的表。这是我一直在做但没有工作的事情。

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

【问题讨论】:

    标签: sql database ms-access


    【解决方案1】:

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

    )

    【讨论】:

      【解决方案2】:

      尝试在末尾添加约束

      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)
      

      )

      已更新以适合实际答案(不允许在 AUTOINCREMENT 列上定义 INTEGER)。将PRIMARY KEYId AUTOINCREMENT 放在同一行确实有效。

      【讨论】:

      • 好的,尝试删除 Id 后的 INTEGER。 (所以第二行变成 Id AUTOINCREMENT
      • 宾果游戏!它有效...请编辑您的答案,以便我可以接受。 Id AUTOINCREMENT PRIMARY KEY 也可以使用 谢谢
      【解决方案3】:

      您可以使用 IDENTITY(Jet4+ 支持)

      CREATE TABLE People_User_Master
      (
      ID IDENTITY (1, 1), 
      Name ..
      

      失败了;

      ID AUTOINCREMENT, 
      

      应该可以(注意你没有指定类型)

      【讨论】:

        【解决方案4】:

        它可能正在工作,但如果在 Column 子句中尝试使用 ID 插入 INSERT INTO 似乎会失败。这似乎覆盖了 MS Access AUTOINCREMENT。

        这会尝试绕过 AUTOINCREMENT 插入 ID=1 的记录

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

        【讨论】:

        • 如何在省略值并让 MS Access SQL 为目标 MS Access 表的 ID 序列值选择一个自动增量值或类似 SQL Server 的“下一个值”语法时插入 INTO?跨度>