gpt4 book ai didi

sql - MySQL - 将字段的默认值设置为字符串连接函数

转载 作者:IT王子 更新时间:2023-10-29 00:31:51 27 4
gpt4 key购买 nike

我有一个表,看起来有点像这个 actors(forename, surname, stage_name);

我想将 stage_name 更新为默认值

forename." ".surname

这样

insert into actors(forename, surname) values ('Stack', 'Overflow');

会产生记录

'Stack'     'Overflow'    'Stack Overflow'

这可能吗?

谢谢:)

最佳答案

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。在每列或连接的字符串上酌情使用 COALESCE()

edit: 以下示例仅在 NULL 时设置 stage_name。否则,您可以在 INSERT 语句中指定 stage_name,它将被保留。

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

关于sql - MySQL - 将字段的默认值设置为字符串连接函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/360467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com