MySQL không hỗ trợ các cột hoặc biểu thức được tính toán trong DEFAULT
tùy chọn định nghĩa cột.
Bạn có thể thực hiện việc này trong một trình kích hoạt (yêu cầu MySQL 5.0 trở lên):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Bạn cũng có thể muốn tạo một trình kích hoạt tương tự BEFORE UPDATE
.
Coi chừng NULL
trong họ và tên, bởi vì sự ghép nối của một NULL
với bất kỳ chuỗi nào khác tạo ra NULL
. Sử dụng COALESCE()
trên mỗi cột hoặc trên chuỗi được nối nếu thích hợp.
chỉnh sửa: Ví dụ sau đặt stage_name
chỉ khi nó NULL
. Nếu không, bạn có thể chỉ định stage_name
trong INSERT
của bạn và nó sẽ được giữ nguyên.
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