Mysqlでinsert into table_a (seq,shain_num)values (max(seq)+1,’aaa’);としてseqの最大値に”+1”した値をseqにinsert使用としたところできませんでした。もともとこのようにはできないのでしょうか?AUTO_INCREMENTを使用するしかないのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/08/11 18:32:55
  • 終了:--

回答(3件)

id:inokuni No.1

いのくに回答回数1343ベストアンサー獲得回数212003/08/11 19:11:03

ポイント30pt

こんなんでどうでしょう?

INSERT INTO table_a (seq, shain_num) SELECT max(seq)+1, ’aaa’ from table_a limit 1;

最後の「 limit 1 」は不必要かもしれません。

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332003/08/11 20:04:27

ポイント30pt

MAX関数は集計関数の一種ですから、用途が違うと思います。

いずれにしても、SQL文だけでは目的の式を実現することは難しいので、AUTO_INCREMENTを使うか、外部で最終レコード数を管理するか、COUNT関数でレコード数を取得するかして、それにincrementするのが妥当だと思います。

id:v-taka

やはりそうでしたか。ありがとうございます。max関数を使わず別の方法でやろうと思います。

2003/08/12 12:53:23

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 sasada 1482 1047 133 2003-08-11 22:42:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません