- PR -

MAX値のインサート

投稿者投稿内容
くり
常連さん
会議室デビュー日: 2006/10/30
投稿数: 28
お住まい・勤務地: tokyo
投稿日時: 2006-11-15 17:53
Edosonさん、うまくにさん、七味唐辛子さん、返信ありがとうございます。
サブクエリ(内側)ですね?
エラーについては、
dbedit.core.DataException: Couldn't execute query:INSERT INTO t_team(TEAM_ID, TEAM_NM) values (select(max(TEAM_ID)+1)"TEAM_NM" from t_team)
java.sql.SQLException: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select(max(TEAM_ID)+1)"TEAM_NM" from t_team)' at line 1
でした。正直わかりません。
ライン1(テーブル1)の構文エラーですかね?

うまくにさん解説ありがとうございます。
とてもわかりやすかったです。


七味唐辛子さんの言うようにわけてほうがわかりやすいので、そうします
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-11-15 18:03
引用:

くりさんの書き込み (2006-11-15 17:53) より:

'select(max(TEAM_ID)+1)"TEAM_NM" from t_team)' at line 1
でした。正直わかりません。
ライン1(テーブル1)の構文エラーですかね?


本当に、ちゃんと読みましたか?
カンマがありませんよ。
引用:

わけてほうがわかりやすいので、そうします


きつい言い方になりますが、まずは、自分が書いたものを、
自分で読めるようになりましょう。
うにくま
ベテラン
会議室デビュー日: 2005/11/05
投稿数: 82
投稿日時: 2006-11-15 18:26
ごめんなさい、前者の
引用:

うにくまの書き込み (2006-11-15 17:15) より:
INSERT INTO t_team(TEAM_ID, TEAM_NM)
values ((select max(TEAM_ID)+1 from t_team),
"TEAM_NM");


は出来ませんね。(少なくともSQLServerでは)


引用:

Edossonさんの書き込み (2006-11-15 17:36) より:
t_teamに複数のレコードがあった場合、
それぞれのレコードについて、データを追加してしまうけど、いいのかな?


とは、どういう意味でしょうか?
レコード数に関係なく、追加されるレコードは一件になるはずです。


そもそも、どういう用途で、この様な処理が必要なのか気になっているのですが。。。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-15 18:41
引用:

うにくまさんの書き込み (2006-11-15 18:26) より:
そもそも、どういう用途で、この様な処理が必要なのか気になっているのですが。。。



一意性のあるIDを自動で振る機能を作る場合の
誤ったアプローチという話だったりしませんか?
ださいくろう
常連さん
会議室デビュー日: 2006/10/17
投稿数: 46
お住まい・勤務地: 豊田市
投稿日時: 2006-11-15 18:54
引用:

くりさんの書き込み (2006-11-15 17:53) より:
Edosonさん、うまくにさん、七味唐辛子さん、返信ありがとうございます。

うまくにさん解説ありがとうございます。


名前を合計3度間違えるなんて失礼ですよ。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-11-16 09:24
引用:

うにくまさんの書き込み (2006-11-15 18:26) より:

レコード数に関係なく、追加されるレコードは一件になるはずです。


ええと、サブクエリのselect文に、max(*)以外の項があるのに、
where文が無い・・・、と読んだのですが、
「以外の項」とは、決めうちだったんですね。失礼致しました。m(_ _)m

>スレ主さん
ちゃんと、フィードバックしてくださいよ。

スキルアップ/キャリアアップ(JOB@IT)