Миграция базы данных Laravel Неверное определение таблицы - PullRequest
0 голосов
/ 21 октября 2018
public function up()
    {
        Schema::create('materials', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name',60);
            $table->integer('category_id',10);
            $table->integer('low_bulk',10);
            $table->integer('high_bulk',10);
            $table->integer('order_level',10);
            $table->decimal('unit_price',10,2);
            $table->string('description');
            $table->timestamps();
        });
    }

Эта схема дает мне следующую ошибку

SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be
defined as a key

Может кто-нибудь сказать мне, что я должен изменить?

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Попробуйте еще раз, как это.

 public function up()
        {
            Schema::create('materials', function (Blueprint $table) {
                $table->increments('id');
                $table->string('name',60);
                $table->integer('category_id);
                $table->integer('low_bulk');
                $table->integer('high_bulk');
                $table->integer('order_level');
                $table->decimal('unit_price',10,2);
                $table->string('description');
                $table->timestamps();
            });
        }

Для более подробной информации, вы можете обратиться это .

0 голосов
/ 21 октября 2018

Второй параметр integer() - это не длина, а необходимость автоматического увеличения столбца.PHP конвертирует 10 в true и пытается автоматически увеличить все эти столбцы.

Просто удалите его, длина не влияет на MySQL:

Schema::create('materials', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name',60);
    $table->integer('category_id');
    $table->integer('low_bulk');
    $table->integer('high_bulk');
    $table->integer('order_level');
    $table->decimal('unit_price',10,2);
    $table->string('description');
    $table->timestamps();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...