Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat Migrasi Laravel: Panjang Kunci Unik Melebihi?

Bagaimana untuk Membetulkan Ralat Migrasi Laravel: Panjang Kunci Unik Melebihi?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 16:31:10276semak imbas

How to Fix Laravel Migration Error: Unique Key Length Exceeded?

Menyelesaikan Masalah Ralat Migrasi Laravel: Panjang Kunci Unik Melebihi

Apabila cuba mencipta kunci unik untuk lajur e-mel dalam Laravel, anda mungkin akan menghadapi berikut ralat:

[IlluminateDatabaseQueryException] SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1071 Kunci yang ditentukan terlalu panjang; panjang kunci maks ialah 767 bait

Walaupun anda telah menentukan kunci indeks sebagai parameter kedua kepada kaedah unique(), ralat berterusan. Ini mungkin disebabkan oleh panjang lajur e-mel.

Penyelesaian untuk versi Laravel sebelum 5.4:

Untuk menyelesaikan ralat ini, kurangkan panjang lajur e-mel . Panjang lalai ialah 250 aksara, jadi ubah suai baris berikut dalam penghijrahan anda:

$table->string('email', 250);

Sebagai alternatif, anda boleh menggunakan panjang lalai:

$table->string('email');

Penyelesaian untuk Laravel 5.4 dan ke atas:

Dalam Laravel 5.4, anda boleh menetapkan rentetan lalai panjang untuk mengelakkan ralat ini. Dalam fail AppServiceProvider.php anda, tambahkan kod berikut pada kaedah but:

use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}

Ini akan memastikan semua lajur rentetan menggunakan panjang maksimum 191 aksara.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Migrasi Laravel: Panjang Kunci Unik Melebihi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn