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

Bolehkah Lajur MySQL Menggunakan Fungsi untuk Nilai Lalai?

Susan Sarandon
Lepaskan: 2024-12-28 06:49:34
asal
261 orang telah melayarinya

Can MySQL Columns Use Functions for Default Values?

Menggunakan Fungsi untuk Nilai Lalai dalam MySQL

Secara lalai, MySQL tidak menyokong penggunaan fungsi sebagai nilai lalai untuk lajur. Ini jelas dalam contoh yang disediakan:

create table app_users
(
    app_user_id smallint(6) not null auto_increment primary key,
    api_key     char(36) not null default uuid()
);
Salin selepas log masuk

Pertanyaan ini akan mengakibatkan ralat. Walau bagaimanapun, terdapat penyelesaian untuk mencapai kefungsian yang serupa.

Menggunakan Pencetus

Satu cara untuk mensimulasikan menggunakan fungsi untuk nilai lalai ialah melalui pencetus. Pencetus ialah objek pangkalan data yang dilaksanakan secara automatik apabila peristiwa tertentu berlaku, seperti memasukkan data ke dalam jadual. Berikut ialah pencetus yang boleh digunakan untuk menjana nilai api_key:

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 dilaksanakan sebelum sebarang sisipan ke dalam jadual app_users. Ia menetapkan lajur api_key bagi baris yang baru dimasukkan kepada nilai UUID yang dijana oleh fungsi uuid().

Penghadan dan Pertimbangan

Semasa menggunakan pencetus menyediakan penyelesaian, ia mempunyai had:

  • Pencetus boleh mempunyai implikasi prestasi pada meja besar.
  • Mereka bergantung pada logik pangkalan data tersuai, yang mungkin tidak boleh dipercayai seperti menggunakan fungsi asli.

Pendekatan Lain

Selain pencetus, terdapat pendekatan lain untuk pertimbangkan:

  • Menjana nilai secara manual: Anda boleh mencipta prosedur atau fungsi tersimpan untuk menjana dan menetapkan nilai lalai.
  • Mengubah suai struktur jadual: Anda boleh menambah lajur berasingan untuk menyimpan nilai yang dijana dan menggunakan pencetus untuk mengisi ia.

Pendekatan terbaik akan bergantung pada keperluan khusus dan kekangan permohonan anda.

Atas ialah kandungan terperinci Bolehkah Lajur MySQL Menggunakan Fungsi untuk 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