语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本

Posted

技术标签:

【中文标题】语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本【英文标题】:Syntax error or access violation: 1064 You have an error in your SQL syntax;that corresponds to your MySQL server version for the right syntax 【发布时间】:2021-11-15 06:20:59 【问题描述】:
public function up()
    
        Schema::table('coupons', function (Blueprint $table) 
            $table->date('expiry_date')->default(DB::raw('CURRENT_DATE'));
        );
    

照亮\数据库\查询异常

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的“CURRENT_DATE”附近使用正确的语法(SQL:alter table coupons add expiry_date date not null default CURRENT_DATE)

【问题讨论】:

我不相信 MySQL 有 CURRENT_DATE 占位符。 dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html yes.only CURRENT_TIMESTAMP 占位符 【参考方案1】:

请试试这个代码:

$table->date('expiry_date')->default(Carbon::now());

【讨论】:

解决了我的问题。谢谢 我认为这不会在当前日期修复。它会继续使用迁移时的日期。 DB::raw('CURRENT_TIMESTAMP') 应该可以解决这个问题

以上是关于语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 6 - SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;

SQLSTATE [42000]:语法错误或访问冲突:1064 在进行迁移时,您的 SQL 语法有错误

语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 对应的手册

SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]

PHP 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误