2011-03-04 10 views
0

既存のテーブルがあります。A.既存のテーブルAのすべてまたは特定の(列)値を外部キーを使用してテーブルBに追加したいとします。これはどのようにMySQLで行いますか? テーブルAに新しい挿入または更新がある場合、テーブルBにも自動的に挿入されます。MySQLで自動的にあるテーブルの値を別のテーブルにロードする方法は?

+0

なぜ値を複製したいのですが、なぜ単にビューを使用しないのですか? http://dev.mysql.com/doc/refman/5.0/en/create-view.html –

答えて

0

これに対して挿入/更新トリガを使用できます。

0

なぜそれをしたいですか? あなたが言及したテーブルBのforignキーを使用してテーブルAのデータを参照するのはなぜですか?

+0

しかし、私はテーブルAからテーブルBに同じ値を挿入しました。自動的な方法があればいつもより良い。 – Raju

+0

しかし、問題は次のようなものでした。なぜなら、両方のテーブルで同じ値を必要とするのはなぜですか?なぜなら、どちらのテーブルでも外部キーを介して結合できるからです。 – Thomas

1

表Aの変更から表Bを自動的に更新するには、MySQLがサポートするトリガーが必要ですが、phpMyAdminはサポートしていません。代わりに、あなたはアドホックベースで表Aから表Bに行を挿入するために探しているなら、それは上記のSQLは、TableAのにTableBのからの単純なコピーをして、簡単な

INSERT INTO TABLEA (COL1, COL2, COL3) 
SELECT FROM TABLEB (COL1, COL2, COL3) 
WHERE (SELECT COUNT(*) FROM TABLEA WHERE TABLEA.COL1 = TABLEB.COL1) = 0 

です。 WHERE句は、まだ存在しないレコードだけが挿入されることを保証します。

0

insert into tableb(columns) select columns from tablea

関連する問題