创建触发器这是我的代码:错误,同时通过JDBC对mysql5.5
triggerBuilder.append("DROP TRIGGER IF EXISTS `insert_associated_inquiry`; ");
triggerBuilder.append(" DELIMITER %% ");
triggerBuilder.append(" CREATE TRIGGER insert_associated_inquiry BEFORE UPDATE ON inquiry ");
triggerBuilder.append(" FOR EACH ROW Begin ");
triggerBuilder.append(" insert into associated_inquiries(inquiry_id , subject , content , inquiry_date , preferred_date) ");
triggerBuilder.append("values");
triggerBuilder.append(" (");
triggerBuilder.append(" OLD.id , ");
triggerBuilder.append(" OLD.subject , ");
triggerBuilder.append(" OLD.content , ");
triggerBuilder.append(" OLD.created_on , ");
triggerBuilder.append(" OLD.preffered_date ");
triggerBuilder.append(") ; ");
triggerBuilder.append(" END %% ");
triggerBuilder.append(" DELIMITER ; ");
con.createStatement().execute(triggerBuilder.toString());
这是错误抛出:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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 'DELIMITER %% CREATE TRIGGER insert_associated_inquiry
BEFORE UPDATE ON inquiry ' at line 1
有什么能为这个错误的原因和解决方案。 请帮忙。谢谢。
如果使用另一个分隔符字符串,是否会得到相同的错误? (如'$$'或'//') – Jocelyn 2012-08-10 10:00:13
@Jocelyn:是的,我得到了同样的错误。 – 2012-08-10 10:01:02
[mysql jdbc驱动程序不支持多语句触发器中的分隔符]的可能重复(http://stackoverflow.com/questions/3481771/mysql-jdbc-driver-does-not-support-delimiters-in-triggers-with -multiple-statemen) – 2013-12-17 07:42:57