有没有办法在Laravel 4中使用迁移和Schema Builder设置表的主键自增初始值?
我想将表的ID设置为从100开始。我知道可以使用纯SQL语句ALTER TABLE MY_TABLE AUTO_INCREMENT = 111111;
来实现,但我希望能够维护Laravel Migrations的数据库版本控制。
你有什么建议吗?
很抱歉,Laravel目前还没有改变自增值的方法,但您可以创建迁移并在其中执行以下操作:
<?php
use Illuminate\Database\Migrations\Migration;
class MyTableMigration extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$statement = "
ALTER TABLE MY_TABLE AUTO_INCREMENT = 111111;
";
DB::unprepared($statement);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
}
class MyTableMigration extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$statement = "ALTER SEQUENCE my_table RESTART WITH 111111";
DB::unprepared($statement);
}
...
}
对象类型错误:7 错误:“users”不是一个序列(SQL: ALTER SEQUENCE users RESTART WITH 7000)
。 - enbermudas
DB::update("ALTER TABLE {your table name} AUTO_INCREMENT = 1;");
该代码可以重置指定数据库表的自增长ID从1开始。 - casafred