Первичный ключ increments в Laravel
В миграциях мы уже использовали
метод id. Он создает поле
id как первичный ключ -
уникальный идентификатор строки
в таблице. Такой вариант подходит
для большинства таблиц.
Иногда первичный ключ нужно назвать
иначе - например, num
или article_id. Для этого
используют метод increments.
Имя колонки передают параметром:
<?php
$table->increments('num');
?>
Метод создает автоинкрементное целое поле и делает его первичным ключом. При каждой новой записи база данных сама увеличивает значение на единицу.
Пример миграции для таблицы статей
с ключом num:
<?php
public function up(): void
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('num');
$table->string('title');
$table->text('text');
});
}
public function down(): void
{
Schema::dropIfExists('articles');
}
?>
В новых проектах чаще используют
id - он короче и привычен
в Laravel. Метод increments
нужен, когда имя первичного ключа
должно отличаться от id
или когда вы работаете со старой
структурой базы.
Создайте таблицу, где первичный
ключ называется num.
Чем id отличается
от increments?