Mysql jdbc中的触发器

Mysql jdbc中的触发器,mysql,database-trigger,Mysql,Database Trigger,我在第5行遇到一个错误,我正在尝试运行一个触发器,这样它就不允许接受除mp3或wav以外的任何其他格式您缺少,然后关键字在您的病情结束时,检查有关的文档,如提及使用单引号作为值,因为这是SQL ANSI默认值 delimiter // CREATE TRIGGER upd_check BEFORE UPDATE ON Recording FOR EACH ROW BEGIN IF NEW.Format != "WAV" or NEW.Format !="mp3"

我在第5行遇到一个错误,我正在尝试运行一个触发器,这样它就不允许接受除mp3或wav以外的任何其他格式您缺少
,然后
关键字在您的病情结束时,检查有关的文档,如提及使用单引号作为值,因为这是SQL ANSI默认值

delimiter //
CREATE TRIGGER upd_check BEFORE UPDATE ON Recording
     FOR EACH ROW
     BEGIN
       IF NEW.Format != "WAV" or NEW.Format !="mp3"
            SET NEW.Format = "N/A";
        END IF;
     END//

如果您缺少
,那么
关键字在您的病情结束时,请查看有关的文档,如提及使用单引号作为值,因为这是SQL ANSI默认值

delimiter //
CREATE TRIGGER upd_check BEFORE UPDATE ON Recording
     FOR EACH ROW
     BEGIN
       IF NEW.Format != "WAV" or NEW.Format !="mp3"
            SET NEW.Format = "N/A";
        END IF;
     END//

错误是什么?错误1064(42000):您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解在“SET NEW.Format=“N/A”附近使用的正确语法;如果结束;在第5行结束,您也不需要修改分隔符,因为只有在
mysql
客户机中才需要它,以解决SQL本质上是流时语句终止的模糊性。在大多数API接口(如JDBC)中,没有歧义,因为您一次只能运行一条语句;检查与您的MariaDB服务器版本对应的手册,以了解在“SET NEW.Format=“N/A”附近使用的正确语法;如果结束;在第5行结束,您也不需要修改分隔符,因为只有在
mysql
客户机中才需要它,以解决SQL本质上是流时语句终止的模糊性。在大多数API接口(如JDBC)中,没有歧义,因为一次只能运行一条语句。另外,对值使用单引号,因为它是SQL ANSI默认值。这是正确的@JorgeCampos我刚才键入的,谢谢你提供的关于单引号的信息:)这会导致所有格式都变为n/a,应该改为“and”运算符吗?如果我添加了一个新录音,但它没有obide mp3或wav,我希望它在表中显示为n/a,以表明它不匹配。如您前面所说,替换为和。更清楚地说,OP遗漏了“THEN”关键字。另外,对值使用单引号,因为它是SQL ANSI默认值。这是正确的@JorgeCampos我刚才键入的,谢谢你提供的关于单引号的信息:)这会导致所有格式都变为n/a,应该改为“and”运算符吗?如果我添加了一个新录音,但它没有obide mp3或wav,我希望它在表中显示为n/a,以表明它不匹配,正如您前面所说的那样,用和替换OR。