我有一个 PARENT 表和一个 CHILD 表。
PARENT
------
ID BIGINT PRIMARY KEY
NAME VARCHAR(255) NOT NULL
CHILD
-----
ID BIGINT PRIMARY KEY
NAME VARCHAR(255) NOT NULL
PARENT_ID BIGINT NOT NULL
我想创建一个触发器
- 当插入或更新 CHILD 行时
- 检查 NEW.NAME
- 如果 NEW.NAME 是 NULL 或 EMPTY
- 使用 PARENT 的 NAME 作为 NEW.NAME
我怎样才能做到这一点?
表:
扳机:
测试:
没有错误检查等,但我会把它作为练习留给你。
当您在设置NEW.NAME的值时要包含空字符串时,您可以将IFNULL(参见此处)仅用于NULL或IF(参见此处) 。
BEFORE INSERT当您必须在插入记录之前先检查记录时。
您可以尝试以下查询:
IF部分检查新的 NAME 是否包含一个值,如果是,则该值将保持原样,如果否,它将使用PARENT表中的PARENT_ID的名称。