【发布时间】:2013-02-02 14:49:58
【问题描述】:
我正在尝试为我的 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(idint unsigne d 不为空 auto_increment 主键,usernamevarchar(16) 不为空,passwordvarchar(64) 不为空,roleint 不为空 auto_increment 主键,created_attimestamp default 0 not null ,updated_attimestamp default 0 not null)) (Bindings: array (
))
该错误与“角色”字段有关,因为当它被删除时,它似乎运行良好。
在此先感谢您提供任何帮助或见解。
【问题讨论】:
-
为什么生成的SQL设置
role为auto_increment primary key?id是唯一的auto_increment primary key列有什么问题?