2012-11-30 92 views
1

我會開始,我在phpMyAdmin用mysql。SQL觸發從一個表到另一個時更新

我的表:

表1:

primary key = id1; 
cash1 = thing I want to pick from that table; 

表2:

primary key = id2; 

cash2 = thing I want to pick from that table; 

表3:

foreign key1 = id1; 
foreign key2 = id2; 
cash3 = thing I want to make; 

所以,我想讓:

Update (or insert into?) cash3 = cash1*cash2/100 when UPDATE ON cash1 or cash2. 

試了很多事情,似乎沒有任何工作...

+1

什麼是你'cash1'和'cash2'的數據類型?你得到的錯誤是什麼? – bonCodigo

+0

你應該描述表格和你得到的錯誤 – Matteo

+0

是啊對不起,在這裏:我沒有具體,我認爲它很重要。 的table1的是人們的數據庫(如ID(唯一),姓名,電話,他的工資(cash1)等),表2是事物(ID,姓名,cash2)和表3列表劃分兩個值表。 我試着這樣做: CREATE TRIGGER試驗後,UPDATE table1的或表2 AS BEGIN UPDATE表3 SET table3.cash3 = table1.cash1 * table2.cash2/100 WHERE table3.cash3 = table1.cash1 *表2。 cash2/100 END; $$ 如果我做了2個觸發器,代碼的外觀如何? – trinny

回答

1

你的觸發器(你需要爲每個表1和表2)應該是這個樣子:

create trigger cash1 on table1 for insert, update 
    Select @c1=sum(cash) from table1 
    Select @c2=sum(cash) from table2 
    Update table3 set [email protected]*@c2/100 
end 

注:以上只是僞代碼,因爲我不熟悉mysql語法。

這是什麼觸發的作用是,當你永遠改變table1中的貨幣量,從表1和表2選擇金錢和計算表3和更新它的量。

你需要另一個觸發,做同樣的對錶2。

這是很難使用,給你一個體面的代碼examplke不知道你的表設置(列名)

希望這有助於。

+0

我不是特定的,我認爲它很重要。 的table1的是人們的數據庫(如ID(唯一),姓名,電話,他的工資(cash1)等),表2是事物(ID,姓名,cash2)和表3列表劃分兩個值表。 我試着這樣做: CREATE TRIGGER試驗後,UPDATE table1的或表2 AS BEGIN UPDATE表3 SET table3.cash3 = table1.cash1 * table2.cash2/100 WHERE table3.cash3 = table1.cash1 *表2。 cash2/100 END; $$ 如果我做了2個觸發器,代碼的外觀如何? – trinny

相關問題