我使用MSSQL存儲過程和觸發器一段時間; MySQL讓我對如何編寫更簡單的過程感到絕對瘋狂。MySQL中的觸發器和存儲過程
爲什麼我在這個如此的類似實體觸發器中出現語法錯誤?
CREATE TRIGGER set_prio_default BEFORE INSERT ON categories
FOR EACH ROW
BEGIN
set @my_prio := 1;
SET new.prio := @my_prio;
END
在事實這種觸發的oversemplification:
DELIMITER $$
DROP PROCEDURE IF EXISTS `slot08`.`test` $$
CREATE PROCEDURE `slot08`.`test`()
BEGIN
select 1 + max(prio) from categories INTO @my_prio;
select @my_prio;
END $$
DELIMITER ;
我還是不明白,如何在程序中使用變量。如果我使用一個DECLARE語句和變量名錯過了@字符,我從MySQL的告訴我,「未知的系統變量」的錯誤 - 但很多我看到的例子用這個語法
我的意思是:
這不工作
CREATE TRIGGER set_prio_default BEFORE INSERT ON categories
FOR EACH ROW
BEGIN
declare my_prio integer default 1;
set my_prio := 1;
SET new.prio := my_prio;
END
如果我使用@我得到語法錯誤。
有一些提示嗎?
謝謝!
請發表您的語法錯誤 – Quassnoi 2009-02-19 11:40:47