MySQL tidak mendukung kolom atau ekspresi yang dihitung dalam DEFAULT
pilihan definisi kolom.
Anda dapat melakukan ini di pemicu (diperlukan MySQL 5.0 atau lebih tinggi):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Anda mungkin juga ingin membuat pemicu serupa BEFORE UPDATE
.
Hati-hati dengan NULL
dalam nama depan dan nama belakang, karena gabungan dari NULL
dengan string lain menghasilkan NULL
. Gunakan COALESCE()
pada setiap kolom atau pada string gabungan yang sesuai.
edit: Contoh berikut menetapkan stage_name
hanya jika NULL
. Jika tidak, Anda dapat menentukan stage_name
di INSERT
. Anda pernyataan, dan itu akan dipertahankan.
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
IF (NEW.stage_name IS NULL) THEN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END IF;
END