Gibt es eine Möglichkeit, die automatische Inkrementierung vor dem Seeding einer Tabelle auf 1 zurückzusetzen?Laravel: Automatisches Inkrementieren vor dem erneuten Seeding einer Tabelle zurücksetzen
leeren ich den Tisch, bevor es Impfen und wenn ich nicht migrate:refresh
tun hat, bevor es dann Impfen es weiterhin die Autoinkrement der ID von der letzten Position, zum Beispiel 4.
Tabelle Samen:
public function run()
{
DB::table('products')->delete();
// Product table seeder
$product = new \App\Product([
'category_id' => 1,
'image_path' => '/images/products/1/000001.jpg',
'title' => 'test',
]);
$product->save();
}
Erstellen der Tabelle:
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->foreign('category_id')->references('id')->on('categories');
$table->string('image_path');
$table->string('title');
$table->timestamps();
});
Hinzufügen von 'DB :: Anweisung (SET FOREIGN_KEY_CHECKS = 0; ');' am Anfang und das Hinzufügen 'DB :: statement ('SET FOREIGN_KEY_CHECKS = 1;');' am Ende des Seeds, und ändern 'DB :: table ('products') -> delete();' in 'DB :: table (' Produkte ') -> truncate(); 'tat es. – Rudolph
Ihre Frage fragt nur nach dem erneuten Seeding der Tabelle, also nimmt @Rimon Khan an, dass dies nur für PRIMARY KEY gilt. Insgesamt hat die Antwort die Antwort gewählt, da dies die Frage erfüllt. – Ronald