我在mysql Ver 15.1 Distrib 10.1.23-MariaDB, for Linux (x86_64) using readline 5.1
中有一些功能和程序。他们的代码是这样的:
CREATE OR REPLACE DEFINER=`root`@`%` FUNCTION `some_name`(_IN_FECHA_PROYECCION date) RETURNS double
BEGIN, etc...
END
当我使用Laravel(php artisan migrate)通过命令行创建这些函数或过程时,一切顺利。但是当我在mysql Ver 15.1 Distrib 5.5.59-MariaDB, for Linux (x86_64) using readline 5.1
的其他机器上执行它时,mysql会返回错误,如:
SQLSTATE[42000]: Syntax error or access violation: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version
for the right syntax to use near '=`root`@`localhost` FUNCTION `some_name`(_IN_FECHA_PROYECCION da'
at line 1 (SQL: REPLACE DEFINER=`root`@`%` FUNCTION `some_name`(_IN_FECHA_PROYECCION date) RETURNS double
BEGIN, etc...
END
好吧,我删除了" OR REPLACE"从代码和现在MariaDB 5.5创建过程/函数没有问题。所以我的问题是,在MariaDB 5.5上REPLACE的问题是什么?我无法在MariaDB的文档中找到任何内容。