2016-03-27 11 views
0

4つのテーブルのidentity_keys(AutoIncremental)を含むfact_tableを参照している4つのテーブルにデータを挿入する際に問題があります。mysqlの同じ行で複数のトリガアクション

私の目的: データが最初のコードを介して4つのテーブルに挿入されると、トリガは増分されたキー値を同じ行のcorporate_sales_helpというfact_tableに挿入する必要があります。

私がこれまでに得たもの
+---------+---------+-------------+-----------+ 
| Time_ID | CPS_ID | COMPANY_ID | SECTOR_ID | 
+---------+---------+-------------+-----------+ 
|  1 |  3 |   1 |   3 | 
+---------+---------+-------------+-----------+ 

データは、すべての4つのテーブルに挿入することができ、キーがあまりにも、インクリメントされます。 データの

INSERTステートメント下図に示すように、インクリメントキーの値は、事実テーブルに挿入される。トリガの

INSERT INTO corporate_sales_view (year) VALUES (2005); 
-- test 
INSERT INTO corporate_sales_view (headquarter, company_name) values ('LONDON' ,'ToysRuS'); 
-- headquarter 
INSERT INTO corporate_sales_view (sector) values ('Toys'); 
-- sector 
INSERT INTO corporate_sales_view (sales_in_usd, sales_local) values (200000, 200003); 
-- sales 

ワン:

BEGIN 
    INSERT INTO corporate_sales_help (cps_id) 
    VALUES (new.cps_id); 
END 

結果これまでのファクトテーブルでは、 result_in_fact_table

私が実際に見たいのは、 1行にする必要があります。

「複数のトリガーイベント/同じ行のアクション」、「複数の行を同じ行に挿入」などの検索を行っていますが、解決策を見つけるのに役立つものは何も見つかりませんでした私の問題のために。

私は非常に悪い英語のことをお詫び申し上げます。

答えて

0

問題は、INSERTを作成していることです。

各トリガーは新しい行を作成します。

重複するキーの更新を使用することはできますが、あなたのケースではキーは何ですか?

とにかく、同じ行にINSERTはありませんが、そのための更新があります。

私が見ている問題は、あなたの行動が完全に独立しており、独立したトリガーがあることです。

「行を埋める基準は何ですか?」その後、アカウントに更新する必要があり、あなたがそれらの独立したイベントを一緒にリンクするものを同じ行


本当の問題は、上のデータが必要な場合は挿入しないという事実を取るトリガーを実装しますか?

2人のユーザーが同時に他の4つのテーブルにレコードを作成しているとどうなりますか?

したがって、これらのイベントをリンクさせる理由は何かを特定することが重要であり、おそらく何らかのキーにつながる可能性があります。

他のテーブルに行を挿入するコードは、1つのコードですか?これらのIDをこのテーブルにも挿入できませんでしたか?

よろしくお願いいたします。

+0

これは感謝しています。 – adriansdq

+0

投票よりも、そして/または答えを受け入れる。ありがとう;) –

+0

私は本当に理解していない、最初にあなたが新しい行が作成され、今すぐ2番目のステップは、その行を更新するために '1つの重複キー'ですが、私はこれを実装することができます他のトリガーからデータが入力された行は更新されますか?私は解決策を見つけることができません..多分それは私に時間を取るだろう.. – adriansdq

関連する問題