1

我有一张有几行的桌子。

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

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

编辑:我想做这样的请求

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

3 回答 3

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) 方法将不起作用,因为它受制于竞争条件。

于 2010-06-08T08:35:33.423 回答
0
insert into Client values(NULL,"name","some address", "country")
于 2010-06-08T08:31:18.820 回答
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");
于 2010-06-08T08:36:14.717 回答