我只是想以兩種方式存儲記錄。檢查條件時觸發器無法正常工作
- 如果它存在,它會更新信息
- 如果不到風度存在,它會插入新記錄
下面是大綱模式爲我的表:
product_purchase_item has product_purchase_item_id,product_id,數量列
product_stock已經product_stock_id,PRODUCT_ID,product_total_quantity列
我創建觸發器
DELIMITER //
CREATE TRIGGER store_check AFTER INSERT ON product_purchase_item
FOR EACH ROW
BEGIN
DECLARE X INTEGER;
SET X =(SELECT product_id FROM product_stock where product_id = NEW.product_id);
IF NEW.product_id !=X THEN
INSERT INTO product_stock VALUES(NULL,NEW.product_id,NEW.quantity);
ELSE
UPDATE product_stock
SET product_total_quantity=product_total_quantity+NEW.quantity
WHERE product_id=NEW.product_id;
END IF;
END;//
DELIMITER;//
的問題是在product_stock表中,當不存在產品記錄INSERT查詢不工作,但更新當產品記錄確實存在時,查詢工作會正確執行
是的,它的工作原理。謝謝。對於php的條件是相同的規則? – Imran
SQL中的布爾邏輯是三個值:TRUE,FALSE和NULL。當其中一個值爲NULL時,比較(<, <=, =, > =,>,<>,!=)將返回NULL。如果'condition'返回TRUE,'IF條件THEN'將只執行'THEN'模塊。 – spencer7593