在我的插入请求中增加我的ID
问题描述:
我有一个表有一些行。在我的插入请求中增加我的ID
idClient,名称,ADRESS,国家,...
我想知道我可以做一个插入此表有自动递增我idClient在我的SQL请求..? Thx。
编辑:我想要做这样的
insert into Client values((select max(idClient),...)
答
ALTER TABLE Client CHANGE idClient
idClient INT AUTO_INCREMENT PRIMARY KEY;
一个请求。然后,当你插入到表,从插入排除自动递增的主键列:
INSERT INTO Client (name, address, country)
VALUES ('name', 'address', 'country')...;
将生成idClient的新值。
如果应用程序有多个实例一次插入行,这是安全地执行此操作的唯一方法。使用您描述的MAX(idClient)方法将不起作用,因为它受到竞争条件的限制。
答
insert into Client values(NULL,"name","some address", "country")
答
定义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");