2
多くの類似の質問&の回答がありましたが、他のDB固有のトリックを使用したり、コードなどで行っています。まっすぐなSQLバッチファイル解決策(存在する場合)。Oracleデータベースに関連する2つのテーブルをロードする
私は親子関係を持つ2つのテーブルを持っています。それはRuns & Run_Valuesと呼ばれます。
Runsには、自動生成されたPK、runID(シーケンス&トリガー)と2つの列Model_Type &があります(制約が適用されている行を一意に識別する時刻)。 Runの各行には、RunId & Valueの2つの列を持つRun_Valuesに多数のエントリがあります。
私は(私はそれを好きなSQLのミックス私は知っているが存在し、SQL)のデータを作るプロセスからこのような何かを生成したいと思います:
insert into Runs (Model_Type, Time) values ('model1', to_date('01-01-2009 14:47:00', 'MM-DD-YYYY HH24:MI:SS'));
set someVariable = SELECT runId FROM Runs WHERE Model_Type like 'model1' and Time = to_date('01-01-2009 14:47:00', 'MM-DD-YYYY HH24:MI:SS'));
insert into Run_Values (run_id, Value) values (someVariable, 1.0);
etc - lots more insert statements with Values for this model run.
任意の考え、参考文献など感謝しています。
ありがとうございます。現在のプロセス/セッションが前のプロセス/セッションの結果を挿入している間に、別のプロセス/セッションが新しいモデルを作成するとどうなるでしょうか?このセッション/トランザクションのcurrvalのみですか? – Marc
良い質問、Marc。はい、CURRVALはセッション用で、他のセッションの影響を受けません。 – spencer7593
はい、currvalは現在のセッションでのみ動作します。別のセッションが新しい実行を挿入すると、シーケンスが増加しますが、他のセッションのcurrvalは同じままです。 –