2015-03-25 51 views
0

我有兩個表: 1)訂單 2)交易 - 存儲對消費者MySQL觸發器:如何在只填充某個列時插入?

現在在我的代碼(PHP)我有一定的列忠誠點(點 - 這是唯一進入訂單表,如果該用戶已經獲得了他的會員卡號碼,否則它仍然是空的)。

如果點插入我的訂單表上的點列(換句話說,如果顧客已獲得點數),觸發器應該觸發並從訂單表(包括點)插入一堆值,進入交易表。

問題1)這是一個插入後。如何從剛剛插入我的訂單表的行中獲取值?

問題2)只有當點列有值時,我該如何做到這一點?

編輯:觸發器會在每次插入訂單表時觸發,但只有在orders.points列中存在值時才能將條目插入到事務表中。

下面是表:

訂單:

Field    Null Key Extra   
order_id    
user_id    NO MUL     
vendor_id   NO MUL     
order_number   YES MUL     
user_info_id   YES MUL     
order_total   NO       
order_subtotal  YES       
order_tax   YES       
order_tax_details NO       
order_shipping  YES       
order_shipping_tax YES       
coupon_discount  NO       
coupon_code   YES       
order_discount  NO       
order_currency  YES       
order_status   YES       
cdate    YES       
mdate    YES       
ship_method_id  YES MUL     
customer_note  NO       
ip_address   NO       
waybill_number  YES       
shipping_carrier_id YES       
shipping_location NO       
insurance   NO       
points    YES       
loyalty_card_number YES 

交易:

Field    Null Key Extra   
id     NO PRI auto_increment 
transactiontypeid NO MUL     
orderid    NO       
orderstatusid_from NO       
orderstatusid_to NO       
ordervalue   NO       
points    YES       
loyaltycardnumber YES       
integrationfileid YES       
createduserid  NO       
createddate   NO 

我在觸發器相當新的(你可以看到) - 感謝您的幫助。

Ĵ

回答

1

請嘗試這樣,

CREATE TRIGGER trigger_name 
AFTER INSERT 
    ON ORDER FOR EACH ROW 

BEGIN 

    // you can access your inserted row value like this 
if (new.points > 0) 
{ 
    //your insertion code goes here 
} 

END; 
+0

太感謝您了。接受和upvoted。 – Jacques 2015-03-25 11:44:28

+0

謝謝!!!!!!!!!! – 2015-03-25 11:57:27