我们能否插入一张表并通过查看另一张表的值作为插入的ID来触发更新插入行的一列?

罗宾汉

如何写一个触发器,它在inserttable3外观的table1,如果codeid具有price第一那里,更新pricetable3相应。但是,如果id+code不能被随后发现它看起来在table2id并使用该价格来计算总price并更新pricetable3该插件。

表格1

| id | code | price |
|----|------|-------|
| 1  | fire | 3     |
| 2  | ice  | 4     |
| 3  | air  | 5     |

表2

| id | price |
|----|-------|
| 1  | 8     |
| 2  | 9     |

表3

| id | code | qty | price |
|----|------|-----|-------|
| 1  | fire | 2   |       | -- price = 2 * 3 = 6
| 2  | none | 3   |       | -- price = 3 * 9 = 27
阿基列什·米什拉

在触发功能中,应使用if exists它进行检查。您可以编写触发函数,如下所示:

CREATE FUNCTION update_price()
RETURNS trigger AS $$
  BEGIN

if exists (select price from table1 where code=new.code and id=new.id) then
new.price= new.qty * (select price from table1 where code=new.code and id=new.id);
else
new.price= new.qty * (select price from table2 where id=new.id);
end if;
  
    return new;
  END;
$$ LANGUAGE plpgsql;

然后,您可以table3按以下方式编写触发器

create trigger update_price 
before insert
on table3
for each row 
execute procedure update_price();

演示

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

(一张表)插入行

我如何在 Django 中插入一张表并更新另一张表

mysql将唯一值从一列插入另一张表的列

根据另一张表中的列值多次插入行

当我插入一行时,更新另一张表中的一列

在MySQL的同一张表中插入行

如何将一列中的数据插入到另一张表中

将数据从一张表插入到另一张表 - MySQL

使用提交间隔从一张表插入到另一张表

将唯一值插入同一张表

在另一张表中插入行的p_key

Laravel 从一张表插入数据到另一张表报错

计算余额并插入另一张表

从另一张表中插入SELECT MAX

通过从SQL Server的另一张表中选择行,将所有行一张一张地插入到空表中

如何在同一张表中插入只有一列与另一行不同的行?

使用粘贴和插入行将数据从一张工作表复制到另一张工作表

如何仅通过计算字符并将它们通过SQL查询插入到另一张表中就将一列分为两列?

从一张表插入到另一张表时,更改日期格式

将 JSON 数据从一张表插入到 HIVE 中的另一张表

将一张表插入另一张表(来自不同的数据库)——MySQL

如何在laravel中将数据从一张表插入到另一张表?

如何从第一张表插入相同的ID到第二张表

将第一张表的插入值获取到第二张表

从另一张表插入数据时,按多列进行PARTITION BY

当在另一张表中插入一行时如何自动增加一张表中的值

导入的工作表随机插入为第一张而不是最后一张

插入同一张表,避免重复

Postgresql 将列从一张表更新到另一张表