MySQL DEFAULT
. में कंप्यूटेड कॉलम या एक्सप्रेशन का समर्थन नहीं करता है कॉलम परिभाषा का विकल्प।
आप इसे एक ट्रिगर (MySQL 5.0 या अधिक आवश्यक) में कर सकते हैं:
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
आप BEFORE UPDATE
. एक समान ट्रिगर बनाना भी चाह सकते हैं ।
NULL
. से सावधान रहें अग्रनाम और उपनाम में, क्योंकि NULL
. का संक्षिप्त रूप किसी भी अन्य स्ट्रिंग के साथ NULL
produces उत्पन्न करता है . COALESCE()
Use का उपयोग करें प्रत्येक कॉलम पर या उपयुक्त के रूप में संयोजित स्ट्रिंग पर।
संपादित करें: निम्न उदाहरण stage_name
सेट करता है केवल तभी जब यह NULL
हो . अन्यथा आप stage_name
. निर्दिष्ट कर सकते हैं आपके INSERT
. में बयान, और इसे संरक्षित किया जाएगा।
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