2009-03-25 13 views
1

トリガーを使用して、他のデータベースに列内の特定の値が存在するかどうかを確認できますか?これらの2つのデータベースは、同じMYSQLインスタンス内にあります。行がデータベースA(Document_DB)の内側(Document_Index_table)テーブルに追加される前にトリガーを使用して他のデータベースの値を確認する

  1. :具体的には、私がやりたいことはこれです。
  2. トリガーが発生します。このトリガーは、行の中の列値(usr_id)の1つを持ち、データベースB(User_Control_DB)に渡します。
  3. User_Control_DBの値に基づいて、usr_idがテーブルUsr_Informationusr_idの列に存在するかどうかをチェックします。
  4. 存在する場合はDocument_DBにtrueを返し、1の行をDocument_DBに追加することができます。
  5. そうでない場合、エラーが発行されます。 Document_DBに行は追加されません。

どうすればいいですか?

編集:両方のデータベースは、だから、MySQLデータベース

答えて

0

あり、私はデータベース開発で、完全な初心者だけど、あなたはこのような何かを行うことができます:

あなたの「前」挿入トリガーを作成します。 document_index_table。私は、これはあなたが何を望むかを達成することを信じてい

declare numRows integer; 
select count(*) from user_control_db.usr_information where usr_id = NEW.usr_id into num_rows; 
if (numRows > 0) then 
    call NonExistentProc(); 
end if; 

: トリガーは、このような何かを行います。 "PROCEDURE documentdb.NonExistenProc does not exist"のようなエラーが発生し、ユーザーコントロールdbに一致するusr idを持つ行が少なくとも1つもない場合は、挿入をスキップします。

また、私はこのDBのスタッフの初心者ですので、よりエレガントな方法があるかもしれませんが、これは私の単一のテストケースのために働いていました。

希望に役立ちます。

関連する問題