在我的插入请求中增加我的id

时间:2010-06-08 08:22:49

标签: mysql increment

我有一张有一些行的表。

  

idClient,name,adress,country,...

我想知道如何在我的sql请求中自动增加我的idClient来插入此表..? THX。

编辑:我想做这样的请求

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

3 个答案:

答案 0 :(得分: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)方法是行不通的,因为它受竞争条件的影响。

答案 1 :(得分:0)

insert into Client values(NULL,"name","some address", "country")

答案 2 :(得分:0)

将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");