簡體   English   中英

MySQL觸發語法錯誤(基於兩個表,帶有if語句)

[英]MySQL trigger syntax error (based on two tables, with if statement)

嘗試創建觸發器時出現語法錯誤。 我不是MySQL專家,但是根據我在stackoverflow上找到的信息設法創建了以下代碼。 觸發器的目的是檢查銷售行是否與拍賣品(而不是現在購買的物品)相關,然后是否計算出售價的10%的溢價(將溢價金額插入溢價欄中) 。 “ listing_id”是列表表和銷售列表表之間的鏈接。

DELIMITER $$
CREATE TRIGGER add_premium
AFTER INSERT
   ON sales_listings FOR EACH ROW
BEGIN
   SET @listing_type := (SELECT listing_type
                     FROM listings
                     WHERE listings.listing_id = NEW.listing_id);
   IF @listing_type = 'auction' THEN
            NEW.premium = NEW.price * 0.1;
   ELSE
        NEW.premium = 0;
   END IF;
END$$
DELIMITER;

這是語法錯誤:

 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.premium = NEW.price * 0.1;
   ELSE
            NEW.premium = 0;
   END IF;
' at line 9 

我究竟做錯了什么?

分配之前必須有SET

IF @listing_type = 'auction' THEN
    SET NEW.premium = NEW.price * 0.1;
ELSE
    SET NEW.premium = 0;
END IF;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM