MySQL将默认值设置为其他表中的其他列

亚力山大

我有三个表,如下所示,艺术家舞台事件我试图找出是否有任何办法可以像这样设置event.cost的默认值(artist.popularity * stage.reputation)是否可以执行此操作,或者在插入时必须手动设置成本值?在此处输入图片说明

专线小巴

计算所得的列不能引用其他表中的列(它看到的只是其自己的表行中的值)。

取而代之的是,您可以使用针对每个插入操作触发的触发器,eventcost为其他表/列分配默认值

delimiter |
create trigger trg_event_price
before insert on event
for each row
begin
    if new.cost is null then
        set new.cost = 
            (select popularity from artist where id = new.artist_id)
            * (select reputation from stage where id = new.stage_id)
        ;
    end if;
end
|
delimiter ;

使用此触发器后,您可以costinsert进入忽略column event,并让触发器处理它:

insert into event (artist_id, stage_id) values(1, 5);
-- "cost" will be computed from the popularity of artist 1 and the reputation of stage 5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将root的shell设置为默认值以外的其他东西是不好的做法吗?

添加列并将其他字段的默认值设置为

通过将列设置为 MySql 中其他两列的总和来更新表中的每一行

将文本文件导入一列,并将默认值分配给mysql表的其他列

根据其他数据类型的另一列设置列的默认值

如何为其他列与Pandas交互的特定列设置默认值?

在下拉菜单中设置默认值,具体取决于其他值

将默认值设置为 Mysql 中的数字列

将每个新项目的启用jshint(和其他选项)配置为默认值

将列设置为DataGridView中的其他属性

熊猫如何使用.loc根据其他列中的值将列设置为NaN

在Angular中,在选定选项上设置其他选项的默认值

为Json.NET中的其他属性指定属性的默认值

MySQL从其他表中填写值

当同一表中其他列的值为1时,将列的值返回为null或为空

熊猫:将某行中某列的值设置为存储在其他df中其其他行的索引处的值

除了在 ATTR_DEFAULT_FETCH_MODE 中设置为默认值的 fetch 方法之外,我们不能使用其他方法吗?

将SQL表中的值求和为其他SQL表中的值

R基于字符串搜索将列值设置为其他列值

在SQLAlchemy中定义表时,如何定义函数(表达式取决于其他列)作为列的默认值?

根据其他列的分组依据为列设置值

在Sublime Text 2中将默认语法设置为其他文件类型

如何将pandas列分配给其他列,如果是nan则默认值?

MySQL将默认值设置为JSON类型列

是否将VBox的值设置为其他FXML VBox?

将接口的键设置为其他接口的可能值?

将值设置为其他输入字段

猫鼬默认值等于其他值

MYSQL:根据其他列分组的计数设置列值