2016-12-29 54 views
2

我的代碼遷移是這樣的:如何在遷移laravel 5.3中設置不自動增量?

public function up() 
{ 
    Schema::create('satkers', function (Blueprint $table) { 
     $table->increments('id'); 
     ... 
    }); 
} 

我跑php artisan migrate。然後,我在數據庫管理員看到。就像這樣:enter image description here

我不希望它自動增加,所以我怎麼能通過遷移文件來做到這一點。

我該怎麼辦呢?

回答

2

primary()設置爲遷移integer()並設置主鍵:

$table->integer('id')->unsigned(); 
$table->primary('id'); 

另一種方法是define primary key in Eloquent model

口才也將承擔每個表都有一個主鍵名爲id列。你可以定義一個$ primaryKey屬性來覆蓋這個約定。

另外,Eloquent假定主鍵是一個遞增的整數值,這意味着默認情況下主鍵會自動轉換爲int。如果您希望使用非遞增或非數字主鍵,則必須將模型上的public $ incrementing屬性設置爲false。

+1

非常感謝。有用 –

0

,如果你想ID而不是自動遞增,那麼你必須

$table->integer('id')->unsigned(); 

如果id場則不需要從遷移中刪除$table->increments('id');使用。

+0

OP不希望爲空或無符號,所以你應該刪除' - > nullable()'並添加' - > unsigned()'。 –

+1

tnx爲您的更新 –

-1

默認情況下,當您創建遷移文件時,它將假定表中會有一個自動遞增的ID,但是如果您不需要它。 將其更改爲此

$table->integer('id')->unsigned(); 
$table->primary('id'); 

保存您的migation文件。 通過php技術人員回滾您的遷移。 ,然後運行php migrate命令。

相關問題