Laravel 4 - 工匠错误SQLSTATE [42000]

时间:2013-02-18 08:05:08

标签: php laravel

我正在尝试为users表创建一个新的迁移,我有以下架构:

        Schema::create('users', function($t) {
            $t->increments('id');
            $t->string('username', 16);
            $t->string('password', 64);
            $t->integer('role', 64);
            $t->timestamps();
    });

当我尝试从终端运行php artisan migrate时,出现以下错误:

  

[异常]
  SQLSTATE [42000]:语法错误或访问冲突:1075不正确   表定义;只有一个自动列,它必须   被定义为一个键(SQL:create table usersid int unsigne d   not null auto_increment主键,username varchar(16)not null,   password varchar(64)no t null,role int not null   auto_increment主键,created_at时间戳默认值0不为空   ,updated_at timestamp default 0 not null))(Bindings:array(
  ))

该错误与“角色”字段有关,因为当删除它时,它似乎运行良好。

提前感谢任何帮助或见解。

3 个答案:

答案 0 :(得分:13)

integer的第二个参数是自动增量标记。

public function integer($column, $autoIncrement = false, $unsigned = false)

https://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Schema/Blueprint.php#L510

答案 1 :(得分:0)

$t->integer('role', false);

修正了它。

答案 2 :(得分:0)

不允许使用整数的长度属性。移动它并尝试。