- - PR -
MAX値のインサート
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-15 15:47
テーブルのMAX値を登録したい場合はどのようにINSERT文を作ればよろしいでしょうか?
------------------------------------------------------------------- t_team //テーブル名 TEAM_ID //MAX値の登録がしたい INSERT INTO t_team(TEAM_ID, TEAM_NM) values (select(max(TEAM_ID)+1,"TEAM_NM"); ----------------------------------------------------------------- max値を求めて+1をするとこまでは、わかったのですが、 インサートのときにどのようにして使ったらいいのかわかりません。 わかっているところまで書きます。 間違っているところのご指摘をお願いします。 | ||||||||||||
|
投稿日時: 2006-11-15 16:01
括弧の数も合ってないし・・・。
まずは、select文で、必要なデータを取得できるようになりましょう。 これができれば、どこが間違っているのかも、わかるようになります。 | ||||||||||||
|
投稿日時: 2006-11-15 16:11
Edossonさん返信ありがとうございます。
select (max(TEAM_ID)+1) from t_team; で、最大値を求めることができました。 では、 INSERT INTO t_team(TEAM_ID, TEAM_NM) values (select(max(TEAM_ID)+1),"TEAM_NM" from t_team); これで少しはちかくなりましたでしょうか? これでは、登録はできませんでした。 [ メッセージ編集済み 編集者: くり 編集日時 2006-11-15 16:11 ] | ||||||||||||
|
投稿日時: 2006-11-15 16:20
じゃ、次はサブクエリについて勉強しましょう。
selectは、どこからデータをもってくるつもりです?
エラーメッセージには、なんてでてるんですか? メッセージの内容なんて読んでないと断言されても、文句は言えないかと。 | ||||||||||||
|
投稿日時: 2006-11-15 16:49
投稿の後、気がついたので。
select文が、ちゃんとselect文の形をしていれば、通ると思いますよ。 | ||||||||||||
|
投稿日時: 2006-11-15 17:15
この記述では、TEAM_ID列にmax(TEAM_ID)+1と"TEAM_NM"の2列を登録する と言う意味になってしまうので正しくありません。 正しくは、
若しくは、
になります。 | ||||||||||||
|
投稿日時: 2006-11-15 17:18
無理して一つにまとめるより 二つに分けた方が
わかり易いし あとあと流用が効くような気もするのだが! | ||||||||||||
|
投稿日時: 2006-11-15 17:36
うにくまさんのサンプルの場合、t_teamに複数のレコードがあった場合、
それぞれのレコードについて、データを追加してしまうけど、いいのかな? いや、最大値のIDを持つレコードを挿入する、というロジックなので、気になって。 いや、それがだめだとかいうことでなく、 私のと、うにくまさんのと、何がどう違うのか、 その結果が要件を満たすのか、ちゃんと理解して選択できていればいいのですが。
まあ、ごく簡単なサブクエリですし。 それよりも、ちゃんとエラーメッセージを読めと(ry | ||||||||||||
