2011-06-25 2 views
2

多くの表に挿入するためにcreate sqlスクリプトが必要です - 2000年に近い合計ですが、リンクされた表(xml隣接モデルです) - table1に挿入した後、 、テーブル2のfkに挿入する - 前のIDとデータ、テーブル3のための繰り返しの後、テーブル4、... リンクテーブルのチェーンの長さ - 20以上。 質問があります:情報スキーマからのテーブル間 - とポイントの後にいくつかのテーブルとしてルート - 挿入クエリのすべてのツリーを生成する?おかげさまで MySQLは依存表のsql挿入を生成します

+0

は、1つのキーでリンクされたテーブルですか? "id"や各テーブルの複数の異なるキーがあります。 –

+0

短い答え:いいえ。 – Johan

答えて

1

アプリケーション層ではできない場合は、Triggersで解決することをお勧めします。

基本的に、各テーブルに「AFTER INSERT」トリガーを作成します。そのようななめらかは:

CREATE TRIGGER t1 
AFTER INSERT ON table1 
FOR EACH ROW 
BEGIN 
INSERT INTO table2 (id, attrib2) VALUES(NEW.id, NEW.attrib2); 
END 

CREATE TRIGGER t2 
AFTER INSERT ON table2 
FOR EACH ROW 
BEGIN 
INSERT INTO table3 (id, attrib3) VALUES(NEW.id, NEW.attrib3); 
END 

そして、TABLE1への挿入は、インサート表3に等をトリガする表2への挿入をトリガします。

関連する問題