2010-06-08 38 views
1

我有一個表有一些行。在我的插入請求中增加我的ID

idClient,名稱,ADRESS,國家,...

我想知道我可以做一個插入此表有自動遞增我idClient在我的SQL請求..? Thx。

編輯:我想要做這樣的

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

回答

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)方法將不起作用,因爲它受到競爭條件的限制。

0
insert into Client values(NULL,"name","some address", "country") 
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");