我正在尝试为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 tableusers
(id
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(
))
该错误与“角色”字段有关,因为当删除它时,它似乎运行良好。
提前感谢任何帮助或见解。
答案 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)
不允许使用整数的长度属性。移动它并尝试。