Как автоматически увеличить столбец, чтобы значение увеличивалось на 1 при добавлении нового элемента с использованием Laravel? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь автоматически увеличить столбец с именем order, поэтому при добавлении нового элемента он увеличивается на 1, я попытался использовать метод autoIncrement() при редактировании своего столбца, но столкнулся с ошибкой, когда применил это Синтаксическая ошибка или нарушение прав доступа: 1067 Недопустимое значение по умолчанию для 'order' есть ли способ использовать autoIncrement() или есть другой способ сделать это? Спасибо.

    public function up()
    {
        Schema::table('images', function (Blueprint $table) {
            $table->integer('order')->unsigned()->default(1)->autoIncrement()->change();
        });
    }

1 Ответ

0 голосов
/ 17 июня 2020

Два столбца с автоинкрементом? В этом и заключается безумие.

Установите для столбца order значение по умолчанию, например: 1, и изменяйте его только в том случае, если вы хотите настроить порядок чего-либо в соответствии с требованиями заказчика. Используйте порядок в качестве первичного ключа сортировки, а id или timestamp в качестве вторичного.

Laravel не поддерживает это, потому что базы данных обычно не поддерживают его. Типы столбцов increments() и bigIncrements() нельзя использовать несколько раз в одной и той же схеме таблицы, и при их создании произойдет сбой:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...