首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel5.0,迁移:如何使整数不是主键?

Laravel5.0,迁移:如何使整数不是主键?
EN

Stack Overflow用户
提问于 2016-04-01 22:49:29
回答 4查看 14K关注 0票数 9

我想迁移一个包含以下元素的表。

代码语言:javascript
复制
public function up() {
    Schema::create('users', function(Blueprint $table) {
        $table->increments('id');
        $table->integer('LoginID', 9)->unsigned();
        $table->string('username');
        $table->string('email')->unique();
        $table->string('password', 60)->unique();
        $table->rememberToken();
        $table->timestamps();
    });
}

然而,我一直在处理下面的错误。有没有人知道如何使整数"LoginID不是主键,以便我可以迁移下表?有任何建议感谢。谢谢提前。“

照明\数据库\QueryException SQLSTATEHY000:一般错误:1表“用户”有多个主键(SQL:创建表“用户”("id“整数非空主键自动增量,"LoginID”整数非空主键自动增量,“用户名”varchar不为空,“电子邮件”varchar不为空,"remember_token“varchar空,"created_at”日期时间不为空,"updated_at“日期时间不为空))

EN

回答 4

Stack Overflow用户

发布于 2016-08-18 16:02:01

问题是,您使用函数->integer()与第二个param。根据文档,第二个参数需要一个布尔值来设置自动增量或不设置:bool $autoIncrement = false)。

试试这个:

代码语言:javascript
复制
public function up() {
    Schema::create('users', function(Blueprint $table) {
        $table->increments('id');
        $table->integer('LoginID')->unsigned();
        $table->string('username');
        $table->string('email')->unique();
        $table->string('password', 60)->unique();
        $table->rememberToken();
        $table->timestamps();
    });
}
票数 11
EN

Stack Overflow用户

发布于 2017-09-07 10:37:39

尝尝这个

代码语言:javascript
复制
$table->integer('company_tel')->length(10)->unsigned();

或者这个

代码语言:javascript
复制
$table->integer('company_tel', false, true)->length(10);

见详细信息https://laracasts.com/discuss/channels/general-discussion/why-am-i-getting-a-database-error-on-migration

票数 4
EN

Stack Overflow用户

发布于 2020-11-23 11:09:38

尝尝这个

代码语言:javascript
复制
$table->increments('id', true);

这将自动增加id,而不创建其主键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36366996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档