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 に答える