2017-10-01 9 views
0

一度に2つのテーブルを更新すると、私のデータベースのバージョンを簡略化されています[email protected] then email_name = foo; email_domain = example.com)は、ここではPostgresqlの

しかし、これは私自身は解決できない問題をもたらしました。 USERに挿入する際に、email_domainが存在するかどうかを確認したい場合は、そのemail_idを取り込んでuserにemail_idとして挿入します。そうしないと、新しいEMAILを作成し、新しく作成した電子メールのIDを取得し、 。
一度に複数のテーブルに挿入する際の標準的な方法はありますか?

答えて

1

これを実行する方法の1つは、電子メールテーブルを参照してそれに応じてユーザテーブルを更新する挿入および更新(および多分削除)のトリガを使用することです。これにより、データが壊れたり、ひどく更新されることはありません。

もう1つの方法は、ユーザーテーブルに挿入と更新を行うストアドプロシージャを作成することです。

第3の方法は、データベースの一部ではなく、ほかのアプリケーションで簡単に再利用できないストアドプロシージャと同様のアプリケーションコードでこれを行うことです。

これらの方法のいずれも、完全に合理的な方法であり、長所と短所があります。

関連する問題