如何解决MySQL通过函数值的字段
我的目标是通过函数将值插入字段。
以下是我创建的函数。
DELIMITER $$
create function Identifier(num int)
Returns int
Begin
Return (num*10);
end $$
DELIMITER ;
以下是表格
create table simulator
(
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,identifier BIGINT null,name varchar(20) null,number varchar(30) null
);
现在,我的目标是根据ID(自动递增)更新标识符的值。例如:如果id为1,则标识符为10,如果2标识符为20。
我创建了一个触发器,该触发器将在插入之前设置标识符的值(我在插入之前/之后有些困惑)。
以下是触发因素
CREATE TRIGGER before_insert_simulator
BEFORE INSERT ON simulator
FOR EACH ROW
SET new.identifier = Identifier(new.id)
但是每次标识符的值为0。
我正在运行mysql 8.0.16
解决方法
触发器无法看到将要分配给自动递增列的值。
由于identifier
包含衍生的信息,所以不实际存储它可能会更简单。计算列不是选项,因为它不能引用自动增量列。您可以改用视图:
create view myview (id,identifier,name,number) as
select id,id * 10,number from mytable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。