首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel - SQLSTATE[42000]:过程或函数迁移时出现语法错误或访问冲突: 1064

Laravel - SQLSTATE[42000]:过程或函数迁移时出现语法错误或访问冲突: 1064
EN

Stack Overflow用户
提问于 2018-05-31 06:07:16
回答 1查看 905关注 0票数 0

我有两台机器。一个是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时,我遇到了以下错误:

代码语言:javascript
复制
[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

我的函数或过程当然有更多的代码,但我试图最小化代码以丢弃这是一个语法问题,但我不明白,在我的其他机器工作中,但不是在这里:

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 06:48:26

根据我的评论,来自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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50613987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档