0

次のクエリを実行しようとすると

create table xyz(id int(3) not null auto_increment, name char(10) not null, code int(6) auto_increment=2000);

次のエラーが表示されます。

You have an error near '=2000)'

id 列を 1 から開始する必要がありますが、同時にテーブルにデータを挿入するたびにコード列を 2000 からインクリメントしたいと考えています。では、クエリに 2 つの auto_increments を含めることは可能ですか? 私はサーブレットの助けを借りてこれをやっています。

4

1 に答える 1

0

直接的な答え:ポンチャが言ったように、複数のauto_increment値を持つことはできません。

ただし、これはいくつかの方法で実行できます。

  1. 挿入ステートメントを書き直して前のコードを見つけ、1を追加します。

    INSERT INTO xyz(name、code)VALUES( "some-name"、(SELECT max(code)+1 FROM xyz))

  2. 挿入後にmysqlトリガーを作成してコードの最大値を見つけ、それを追加してから更新します

!! これはまったくお勧めしません。コードを再設計してください。

私の最大の推奨事項は、乱数を生成して挿入時に使用するか、サブクエリを書き直して乱数を作成することです。

于 2012-06-27T05:40:22.103 に答える