2017-02-23 28 views
2

両方のテーブルに存在していますか?値必見は、私は2つのテーブルを持っている

+0

外部キーはありますか? – HoneyBadger

+0

いいえ、私は簡単に説明する方法はわかりませんが、すべての顧客は顧客電話を持っている必要があります – Yakalent

+0

customerphoneを自分のテーブルの代わりにcustomerテーブルに置くのはどうですか?または、顧客は複数の電話番号を持つことができますか?同時に2つのテーブルに挿入することはできないので(トランザクションにもかかわらず)、レコードが両方のテーブルに存在しなければならないということは、実際には強制できません。 –

答えて

4

これだけでは宣言参照整合性(DRI)を行うことはできません。外部キー制約を追加することは、ソリューションの一部にすぎません。また、トランザクションとビジネスロジックを2つのテーブルに挿入する必要があります。ストアドプロシージャでこれを実行して、アプリケーションの観点からアトミックな操作として動作させることをお勧めします。

Begin Transaction 
    Logic around inserting a Customer 
    Logic around inserting CustomerPhone row 
If the newly added Customer has a CustomerPhone 
    Commit Transaction 
Else 
    Rollback Transaction 
2

テーブルcustomercust_idをプライマリキーにします。

cust_idのテーブルにcustomerphoneという外部キーを作成します。これは、cust_idcustomerに戻ります。

cust_idがすでにcustomerに存在する場合は、customerphoneに行を追加できます。

関連する問題