如何在迁移laravel 5.3中设置无自动增量?

时间:2016-12-29 08:24:37

标签: php mysql laravel migration laravel-5.3

我的代码迁移是这样的:

<tbody ng-repeat="eachTournament in tournaments | filter:{id:tournamentFilter.id, city: tournamentFilter.city||undefined} | orderBy:'name'">

我跑public function up() { Schema::create('satkers', function (Blueprint $table) { $table->increments('id'); ... }); } 。然后,我在数据库管理员中看到了。它是这样的:enter image description here

我不希望它自动递增,所以我怎样才能通过迁移文件来实现。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

在迁移中将其设置为integer(),并使用primary()设置主键:

$table->integer('id')->unsigned();
$table->primary('id');

另一种方法是define primary key in Eloquent model

  

Eloquent还会假设每个表都有一个名为id的主键列。您可以定义$ primaryKey属性来覆盖此约定。

     

此外,Eloquent假定主键是递增的整数值,这意味着默认情况下主键将自动转换为int。如果您希望使用非递增或非数字主键,则必须将模型上的public $ incrementing属性设置为false。

答案 1 :(得分:0)

如果你想要id而不是自动增量,那么你必须使用

$table->integer('id')->unsigned();

如果不需要id字段,请从迁移中删除$table->increments('id');

答案 2 :(得分:-1)

默认情况下,当您创建迁移文件时,它会假定表中会有一个自动递增的ID,但是如果您不想要它。 把它改成这个

$table->integer('id')->unsigned();
$table->primary('id');

保存您的migation文件。 通过php artisan回滚你的迁移。 然后运行php migrate命令。