【问题标题】:Laravel - SQLSTATE[42000]: Syntax error or access violation: 1064 on migrationLaravel - SQLSTATE [42000]:语法错误或访问冲突:迁移时出现 1064
【发布时间】:2018-02-06 07:27:58
【问题描述】:

直到现在我运行 php artisan migrate 时才出现此错误
我正在使用 MySQL 5.6.34
我尝试了所有我能想到的东西):但仍然没有运气我有一个类似的表并且工作正常,但由于某种原因,这一次不起作用

[PDOException]
  SQLSTATE[42000]: Syntax error or access violation: 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 'unsigned not null, `address_1` varchar(191) unsigned not null, `address_2` varch' at line 1

这是我的迁移文件

public function up()
    {
        Schema::create('rmaRequests', function (Blueprint $table) {
           $table->increments('id');
           $table->integer('user_id')->unsigned();
           $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
           $table->string('reference_number')->unique();
           $table->string('first_name');
           $table->string('last_name');
           $table->string('email');
           $table->string('phone');
           $table->string('fax');
           $table->string('company');
           $table->integer('marketplaceId')->unsigned();
           $table->string('order_number')->unsigned();
           $table->string('address_1');
           $table->string('address_2');
           $table->string('city');
           $table->string('state');
           $table->string('zip');
           $table->integer('returnTypeId')->unsigned();
           $table->string('sku');
           $table->string('qty');
           $table->string('productName');
           $table->text('comments');
           $table->integer('status_id')->unsigned();
           $table->string('replacement_tracking');
           $table->string('return_tracking');
           $table->string('rma_number');
           $table->string('refund_number');
           $table->timestamps();
        });
    }



/**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('rmaRequests');
    }

【问题讨论】:

    标签: php mysql laravel laravel-5 laravel-5.3


    【解决方案1】:

    我认为这是因为您将unsigned 用于varchar

    这里:

    $table->string('order_number')->unsigned();
    

    Laravel 中的unsigned() 方法描述:

    integer 列设置为 UNSIGNED

    欲了解更多信息:https://laravel.com/docs/5.4/migrations#column-modifiers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2015-10-12
      • 1970-01-01
      • 2022-01-25
      • 2014-01-14
      • 2013-12-02
      相关资源
      最近更新 更多