2016-08-11 14 views
0

私は2つのテーブルを持っている、と彼らは一つのフィールドで接続されている:私はこの2つの表にデータを挿入するために、SQLを使用したいテーブルB2つのテーブルに1つのSQL挿入データを使用する方法?

の& IDをテーブルのB_ID。

どのように挿入するSQLを書くのですか?

1、テーブルBのidは自動インクリメントです。

2、愚かな方法で、まずテーブルBにデータを挿入してから、テーブルBからIDを選択してから、テーブルAにidをmessage_idとして追加することができます。

table A

table B

+1

愚かな方法ではない - それはあなたがそれを行う方法です - あなたは、他のテーブルとの唯一の方法でそれを置くことができる前に、IDを生成する必要がありますそれを行うには、レコードを挿入することです。 –

答えて

1

あなたは1つのSQL文で複数のテーブルにデータを挿入することはできません。データを最初にBテーブルに挿入してからテーブルAに挿入するだけです.RETURNINGステートメントを使用してID値を取得し、挿入間の追加のSELECT文を取り除くことができます。

参照:https://oracle-base.com/articles/misc/dml-returning-into-clause

+0

トリガーを使用することもできます。具体的には「後で挿入」 - 詳細については私の答えを参照してください – maialithar

0

はあなたがについてAFTER INSERTトリガーを聞いたことがありますか?私はそれがあなたが探しているものだと思います。

このような何かが、あなたがやりたいことがあります

CREATE OR REPLACE TRIGGER TableB_after_insert 
AFTER INSERT 
    ON TableB 
    FOR EACH ROW 

DECLARE 
    v_id int; 

BEGIN 
    /* 
    * 1. Select your id from TableB 
    * 2. Insert data to TableA 
    */ 
END; 

/
+0

しかし、私はどのように1のSQLを書くのですか? – daxue

関連する問題