sql - 作为惰性规则视图的一部分插入多个表时如何返回
问题描述
我正在尝试为我的视图创建规则,这样我就不必一次插入多个表,但我需要返回新行并且我无法工作如何从多个插入语句返回。
此规则工作正常,但显然什么也不返回:
create rule template_field_insert as on insert to template_field
do instead (
insert into public.base (
id,
organisation_id,
last_modified_by,
armicus_data
)
values (
new.id,
new.organisation_id,
new.last_modified_by,
new.armicus_data
)
insert into public.template_field_data (
id,
template_id,
format_id,
armicus_name,
description,
armicus_configuration,
required
)
values (
new.id,
new.template_id,
new.format_id,
new.armicus_name,
new.description,
new.armicus_configuration,
new.required
)
)
我试过这个,但它只是在第一次插入时抛出一个语法错误:
create rule template_field_insert as on insert to template_field
do instead (
(
insert into public.base (
id,
organisation_id,
last_modified_by,
armicus_data
)
values (
new.id,
new.organisation_id,
new.last_modified_by,
new.armicus_data
)
returning *
) b, (
insert into public.template_field_data (
id,
template_id,
format_id,
armicus_name,
description,
armicus_configuration,
required
)
values (
new.id,
new.template_id,
new.format_id,
new.armicus_name,
new.description,
new.armicus_configuration,
new.required
)
returning *
) f
select b.id, f.armicus_name
from b
join f on b.id = f.id
)
我已经通过视图之外的 CTE 实现了这一点,但您不能在 CTE 内使用 NEW。
解决方案
推荐阅读
- fortran - 为什么不能在 ABAQUS 子程序中调用 MKL-FFTW3 库
- python - AttributeError:“系列”对象没有属性“iget”
- java - 配置数据源失败
- c# - C# windows服务识别按下了哪个功能键
- video - FFmpeg 压缩后的 HTML5 视频在浏览器中设置 currentTime 行为不同
- sql - 将多个分组查询组合成单个查询
- android - Android Studio 正在为 3 个月大的 react-native 项目生成非常旧的 apk
- python - Python Pandas dataFrame - 列选择
- wordpress - 如何使用 Wordpress 在主页上缩小滑块大小
- angular - Angular Observable 链接