できればスクリプト( Javaから実行)からMySQLで関数を作成する方法を探していますが、標準のJDBCまたはSpringのJdbcTemplateも同様に機能します。
以下を使用して、mysqlコマンドラインコンソールから関数を正常に作成できました。
DELIMITER $$
CREATE FUNCTION test() RETURNS double DETERMINISTIC
BEGIN
RETURN 63;
END$$
しかしDELIMITER
、有効な SQL 構文ではないため、スクリプトから実行すると例外が発生します。
[42000][1064] 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 $$
を使用してSpring JDBCテンプレートから作成しようとすると
jdbcTemplate.execute("CREATE FUNCTION some() RETURNS double DETERMINISTIC\n" +
"BEGIN\n" +
"RETURN 63;\n" +
"END;");
次の例外が発生します。
Caused by: com.mysql.jdbc.exceptions.jdbc4.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
'CREATE FUNCTION some() RETURNS double DETERMINISTIC
BEGIN
RETURN 63;
END' at line 1`
行き方を知っている人はいますか?