这是我的代码:
CREATE TRIGGER Zmiana_kategorii
ON Hotele
AFTER UPDATE
AS
BEGIN
DECLARE @stara smallint, @nowa smallint
IF COL_LENGTH('deleted', 'IloscGwiazdek')
BEGIN
SET @stara=(SELECT IloscGwiazdek FROM deleted)
SET @nowa=(SELECT IloscGwiazdek FROM inserted)
IF(@stara<@nowa)
BEGIN
print 'Powiadom następujących klientów o zmianie klasy hotelu'
declare @data date
SET @data=(CONVERT (date, GETDATE()))
SELECT KlientID FROM Rezerwacje Where @data<DataPrzyjazdu
END
END
END
有人能告诉我语法有什么问题吗?我是第一次使用MYSQL我没有任何线索这是错的...
这是错误:ON Hotele在UPDATE as BEGIN DECLARE @stara smallint后,@ nowa smallint'在第2行“这是错误
答案 0 :(得分:1)
至少有一个问题是您的THEN
条件之后未包含IF
。例如:
IF (@stara<@nowa) THEN
BEGIN
-- ...
END
另一个问题是,CREATE TRIGGER
元素的顺序错误。它应该是:
CREATE TRIGGER Zmiana_kategorii
AFTER UPDATE
ON Hotele
请注意AFTER UPDATE
在ON
之前。这似乎可以解决您的具体问题。
最后,MySQL没有PRINT
命令,所有变量都必须在BEGIN
块的开头声明,然后才能在任何其他语句之前声明。
请阅读整个页面并了解正在发生的事情:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
如果你理解语法,那么你可以自己调试它。这些类型的简单问题不应该需要社区帮助(尽管有时额外的一双眼睛可以捕获明显的错误)。