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