我有两个表:1) 订单2) 交易-存储针对购物者的忠诚度积分
现在,在我的代码(PHP)中,我有一个特定的列(点数——只有当用户获取了他的忠诚卡号时,才会将其输入订单表,否则它将保持为空)。
如果积分被插入到我的订单表上的积分列中,(换句话说,如果购物者赢得了积分)触发器应该触发并将订单表中的一组值(包括积分)插入到交易表中。
问题1)这是一个后插入。如何从刚刚插入订单表的行中获取值?
问题2)只有在点列有值的情况下,我如何实现这一点?
EDIT:每当有东西插入订单表时,触发器就会触发,但只有在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
我对触发器很陌生(正如你所看到的)-谢谢你的帮助。
J
请这样尝试,
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;