【发布时间】:2015-01-15 23:47:07
【问题描述】:
我正在开发一个应用程序,而我的雇主希望用户表中的 id 应该从 100,000 而不是 1 开始。如何实现呢?它是 Schema Builder 本身的参数吗?还是我必须在 MySQL 中设置一些东西?
【问题讨论】:
我正在开发一个应用程序,而我的雇主希望用户表中的 id 应该从 100,000 而不是 1 开始。如何实现呢?它是 Schema Builder 本身的参数吗?还是我必须在 MySQL 中设置一些东西?
【问题讨论】:
在 Laravel 8 中,您可以在创建表时在模式中使用 from() 或 startingValue() 来设置自动增量
$table->id()->from(100000);
或使用
$table->id()->startingValue(100000);
【讨论】:
好吧,我在游戏中很晚才来找你,但是如果你使用 truncate 方法,我相信主键的自增值会自动重置为 1。
我目前正在从事一个项目,我正在使用我正在更新的站点的实际实时数据更新我的开发数据库。我在数据进入时重新分配主键值,因此根据对实时数据所做的更改,主键可能会更改,因此我经常不得不截断并重置自动增量值。我在 laravel 8 中发现在模型上发出 truncate() 方法可以实现这一点。
例如
App\Models\User::truncate();
截断用户表并将主键'id'自动递增值重置为1;
你在很多个月前发布了这么多,你可能已经发现了这个,我想。
【讨论】:
您可以使用 SQL 本身来执行此操作。 ALTER TABLE <table_name> AUTO_INCREMENT=100000;.
或者
像here那样做
并使用没有准备的语句;
$statement = "ALTER TABLE MY_TABLE AUTO_INCREMENT = 100000;";
DB::unprepared($statement);
或
DB::update("ALTER TABLE {your table name} AUTO_INCREMENT = 100000;");
然后可以将其放入创建表的迁移中。
【讨论】: