Rumah > pangkalan data > tutorial mysql > Bolehkah Lajur MySQL Menggunakan Fungsi sebagai Nilai Lalai?

Bolehkah Lajur MySQL Menggunakan Fungsi sebagai Nilai Lalai?

Mary-Kate Olsen
Lepaskan: 2024-12-05 21:17:12
asal
850 orang telah melayarinya

Can MySQL Columns Use Functions as Default Values?

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
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan