私はいくつかの行を持つテーブルを持っています。
idClient、名前、住所、国、...
SQLリクエストでidClientを自動インクリメントしてこのテーブルに挿入する方法を知りたい..? どうも。
編集:このようなリクエストをしたい
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");