人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: v-taka
●カテゴリ:ウェブ制作
✍キーワード:AAA Max MySQL
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● いのくに
●30ポイント

http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html#INS...

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

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

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


2 ● pahoo
●30ポイント

http://homepage2.nifty.com/inform/vbdb/sql_func.htm

集計関数 - SQL便利帖

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ