Laravel 遷移錯誤:唯一金鑰長度超出限制
當嘗試使用遷移來遷移Laravel 中的使用者表時,開發人員可能會遇到錯誤:「[SQLSTATE[42000]:語法錯誤或存取衝突:1071指定的鍵是太長;最大密鑰長度為 767 位元組。
問題陳述
提供的遷移嘗試使用唯一鍵建立使用者表在電子郵件欄上。但是,email 列的長度被指定為 320 個字符,超出了最大長度限制。
解
1。減少電子郵件列長度
將電子郵件列的長度減少到較小的值,例如 250 或預設的 191 個字元。依下列方式調整遷移:
Schema::create('users', function(Blueprint $table) { // ... $table->string('email', 250); // Update the email column length // ... });
2.設定預設字串長度(Laravel 5.4 )
如果您使用Laravel 5.4 或更高版本,您可以在AppServiceProvider.php 檔案的boot 方法中設定預設字串長度:
public function boot() { Builder::defaultStringLength(191); }
這將為遷移中建立的所有字串列設定預設長度 191 個字符,確保唯一鍵不超過允許的長度長度。
以上是Laravel 遷移錯誤:如何修復「唯一密鑰長度超出限制」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!