Menggunakan Fungsi sebagai Nilai Lalai dalam MySQL
Dalam MySQL, tidak mungkin untuk menentukan fungsi sebagai nilai lalai untuk lajur. Ini boleh mengecewakan, terutamanya jika anda ingin menggunakan fungsi untuk menjana nilai unik untuk lajur, seperti UUID.
Mesej Ralat
Apabila anda mencuba untuk membuat jadual dengan nilai lalai yang merupakan fungsi, anda akan menerima mesej ralat yang serupa dengan berikut:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'uuid()' at line 10
Penyelesaian Alternatif
Walaupun anda tidak boleh menggunakan fungsi secara langsung sebagai nilai lalai, terdapat penyelesaian yang melibatkan penggunaan pencetus. Pencetus ialah prosedur tersimpan yang dilaksanakan secara automatik apabila peristiwa tertentu berlaku, seperti penyisipan baris baharu ke dalam jadual. Berikut ialah contoh pencetus yang boleh digunakan untuk menjana UUID untuk lajur api_key dalam jadual app_users:
CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();
Pencetus ini akan dilaksanakan sebelum sebarang baris baharu dimasukkan ke dalam jadual app_users. Untuk setiap baris, ia akan menetapkan nilai lajur api_key kepada UUID. Ini memastikan bahawa setiap baris baharu mempunyai nilai kunci_api yang unik.
Atas ialah kandungan terperinci Bolehkah Lajur MySQL Menggunakan Fungsi sebagai Nilai Lalai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!