Laravel - SQLSTATE [42000]:语法错误或访问冲突:1064 on PROCEDURE OR FUNCTION migration

时间:2018-05-30 22:07:16

标签: laravel database-migration

我有2台机器。一个用php 5.6,另一个用php 7。

php 5.6的那个有:

[root@bd-mg ~]# mysql --version mysql Ver 15.1 Distrib 10.1.23-MariaDB, for Linux (x86_64) using readline 5.1

另一个与PHP 7有:

[root@XXX]# mysql --version mysql Ver 15.1 Distrib 5.5.59-MariaDB, for Linux (x86_64) using readline 5.1

当我使用php 5.6在计算机上运行迁移时,我没有任何问题。创建所有表,视图,过程和函数。但是在另一台机器上,当我运行php artisan migrate时,我遇到了这些错误:

[root@XXX]# php artisan migrate

In Connection.php line 647:

  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 `genera_pr
  oyeccion_demanda`(_IN_FECHA_PROYECCION da' at line 1 (SQL: REPLACE DEFINER=`root`@`localhost` FUNCTION `genera_proyeccion_demanda`(_IN_FECHA_PROYECCION date) RETURNS double
  BEGIN
  END
  )


In PDOConnection.php line 62:

  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 `genera_pr
  oyeccion_demanda`(_IN_FECHA_PROYECCION da' at line 1


In PDOConnection.php line 60:

  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 `genera_proyeccion_demanda`(_IN_FECHA_PROYECCION da' at line 1

我的函数或程序当然有更多的代码,但我试图最小化丢弃的代码,这是一个语法问题,但我不知道,在我的其他机器上工作但不在这里: enter image description here

即使程序或功能几乎为空,也会发生此错误。有任何想法吗?数据库用户是root用户,我也以root身份运行php artisan。

1 个答案:

答案 0 :(得分:0)

根据我的评论,来自php artisan migrate命令的控制台错误通知您不接受SQL REPLACE语法。

这似乎源于php7中较新的PDO。 php5.6附带的版本显然接受了语法,但php7中的版本没有。

违规语法位于迁移2018_05_24_202139_create_genera_proyeccion_demanda_function

如果您需要确认表是否存在,可以使用Schema :: hasTable()方法,请参阅https://laravel.com/docs/5.6/migrations#tables