您可以使用触发器作为解决方法并获得类似的结果。
ALTER TABLE `employee`
ADD `employee_name_generator` CHAR(20);
delimiter //
create trigger trig_create_employee_name_generator before insert on `employee`
for each row
begin
set NEW.`employee_name_generator` = COALESCE(concat(NEW.`employee_name`), '^');
end
//
如果您还要在插入后更新employee_name 字段,则还需要更新触发器:
delimiter //
create trigger trig_update_employee_name_generator before update on `employee`
for each row
begin
set NEW.`employee_name_generator` = COALESCE(concat(NEW.`employee_name`), '^');
end
//
请记住,在 MySQL 5.6 中,每个表只有一个用于插入前的触发器和一个用于更新的触发器,因此如果您需要多个生成的列,则可以将 set 语句链接到“开始”和“结束”之间的同一个触发器中”。