我有幾個表,我需要tinyint
字段必須是unsigned
並設置爲auto_increment
。Laravel 5.3:自動遞增無符號TINYINT
該L5.3 Database : Migrations documentation不有一個方法來定義unsigned auto-incrementing tinyint
。我試圖用DB::update()
來實現它。爲表我的遷移文件看起來像:
public function up()
{
Schema::create('table_name', function (Blueprint $table)
{
$table->unsignedTinyInteger('field1');
$table->string('field2', 255);
$table->primary('field1');
$table->index('field2');
$field = "field1";
});
$this->addAutoIncrements($field);
}
public function addAutoIncrements($field)
{
DB::update('ALTER TABLE table_name MODIFY $field TINYINT UNSIGNED NOT NULL AUTO_INCREMENT');
}
當我嘗試php artisan migrate
這樣的遷移文件,它遷移沒有任何錯誤,但不分配auto-increment
。
我該如何解決這個問題?我應該將更新作爲完整的新遷移來完成嗎?有沒有人做過?
'$ table-> unsignedTinyInteger('field1') - >增量();' – Ali
@Ali:這是我第一次嘗試。沒有工作。 –