5

我正在尝试为我的 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:创建表usersidint unsigne d not null auto_increment primary key,usernamevarchar(16) not null, passwordvarchar(64) no t null,roleint not null auto_increment primary键,created_at时间戳默认 0 不为空,updated_at时间戳默认 0 不为空))(绑定:数组(
))

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

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

4

3 回答 3

13

for的第二个参数integer是一个自动增量标志。

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

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

于 2013-02-18T08:13:11.030 回答
0
$t->integer('role', false);

这解决了它。

于 2015-07-01T17:48:26.650 回答
0

整数的长度属性是不允许的。删除它并尝试。

于 2016-01-22T17:08:23.317 回答