Laravel 遷移:解決「唯一密鑰太長」錯誤
Laravel 遷移中的「唯一密鑰太長」錯誤發生在密鑰太長唯一密鑰時index 嘗試使用超過最大允許長度的密鑰。在具有大資料類型(例如電子郵件地址)的欄位上定義唯一索引時,可能會遇到此錯誤。
要解決此問題,請考慮以下解決方案:
1.減少列長度:
一種方法是為相關列指定較短的長度。例如,在提供的遷移中,電子郵件列的長度定義為 320 個字元。要解決此錯誤,請嘗試將此長度減少到 250 個字符,這是電子郵件列的預設長度。
2.覆蓋預設字串長度(Laravel 5.4):
如果您使用Laravel 5.4,您可以使用下列步驟覆寫預設字串長度:
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
此程式碼將預設字串長度設為 191 個字符,這對於大多數情況來說應該足夠了。
3.啟用主鍵大增量:
如果錯誤仍然存在,請檢查表的主鍵是否設定為自動增量(通常定義為increments ('id'))。如果是這樣,請嘗試將其轉換為「大整數」自動增量(bigIncrements('id')),如下所示:
<code class="php">$table->bigIncrements('id');</code>
此變更允許主鍵容納更大的值,可能會釋放一些索引中有空格。
4.檢查其他索引和鍵:
確保表上沒有其他索引或鍵可能導致最大鍵長違規。如果存在,請嘗試刪除或修改這些索引以釋放索引區域中的空間。
透過實作這些解決方案,您應該能夠解決「唯一鍵太長」錯誤並成功建立所需的唯一鍵資料庫表上的索引。
以上是如何修復 Laravel 遷移中的「唯一密鑰太長」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!