【问题标题】:Increment my id in my insert request在我的插入请求中增加我的 id
【发布时间】:2010-06-08 08:22:49
【问题描述】:

我有一个包含一些行的表。

idClient、姓名、地址、国家、...

我想知道如何通过在我的 sql 请求中自动增加我的 idClient 来插入到这个表中......? 谢谢。

编辑:我想做这样的请求

insert into Client values((select max(idClient),...)

【问题讨论】:

    标签: mysql increment


    【解决方案1】:
    ALTER TABLE Client CHANGE idClient
      idClient INT AUTO_INCREMENT PRIMARY KEY;
    

    然后当你插入到表中时,从你的插入中排除自动递增的主键列:

    INSERT INTO Client (name, address, country)
      VALUES ('name', 'address', 'country')...;
    

    idClient 的新值将被生成。

    如果有多个应用程序实例同时插入行,这是安全执行此操作的唯一方法。使用您描述的 MAX(idClient) 方法将不起作用,因为它受制于竞争条件。

    【讨论】:

      【解决方案2】:
      insert into Client values(NULL,"name","some address", "country")
      

      【讨论】:

        【解决方案3】:

        将id列定义为AUTO_INCREMENT,然后完全跳过赋值:

        CREATE TABLE clients (
        id MEDIUMINT NOT NULL PRIMARY KEY,
        name VARCHAR(255),
        addr VARCHAR(255),
        country VARCHAR(255),
        PRIMARY KEY (id));
        
        INSERT INTO clients
        (name, addr, country)
        VALUES
        ("name", "addr", "country");
        

        【讨论】:

          猜你喜欢
          • 2020-05-07
          • 2013-03-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-14
          • 2016-08-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多