私はsqlStr
このようなSQLを持っています:
DELIMITER $$
CREATE TRIGGER TEST_T
AFTER INSERT ON TEST
FOR EACH ROW
BEGIN
INSERT INTO TEST_LOG VALUES(NEW.ID, 3);
END $$
そして、この文字列を次のように使用して、アプリケーションの実行中にトリガーを作成します。
Transaction t = sessionFactory.getCurrentSession().beginTransaction();
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(sqlPart);
query.executeUpdate();
sessionFactory.getCurrentSession().flush();
t.commit();
しかし、私は次のような例外を受け取ります:
WARN 2013-04-24 16:12:48,238 [main] org.hibernate.util.JDBCExceptionReporter : SQL Error: 1064, SQLState: 42000
ERROR 2013-04-24 16:12:48,239 [main] org.hibernate.util.JDBCExceptionReporter : 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 TEST_T
AFTER INSERT ON TEST' at line 1
このsqlStr
内容は、MySQL で個別に実行する場合に問題ないことに注意してください。しかし、ここでは実行できません。なんで?