創建觸發器這是我的代碼:錯誤,同時通過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