gpt4 book ai didi

database - 架构名称与表名称 - 如何避免冲突?

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:39 24 4
gpt4 key购买 nike

我要使用 Oracle 数据库解决一个问题。

Oracle 数据库中有两种模式:XXX 和 YYY

模式 XXX 包含一个名为 YYY 的表(与第二个模式同名)。

模式 YYY 包含一些序列(比如说序列 ZZZ)和日志表,我需要在模式 XXX 中由触发器使用它们。

但是当我尝试使用这种结构在表 XXX.some_table 上编写触发器时:

SELECT YYY.ZZZ.NEXTVAL INTO AAA FROM DUAL

Oracle 将 YYY 视为 XXX 模式中的表并显示错误消息“必须声明组件 ZZZ”。为XXX用户设置了访问YYY.ZZZ序列的适当权限,但没有用。

如何避免这种情况?不幸的是,数据库的结构是固定的,无法更改。

最佳答案

您可以编写触发器代码,因此您可以一些 控制数据库。那挺好的。

我建议你使用同义词来解决这个问题:

create synonym yyy_zzz_seq for yyy.zzz;

然后您应该能够在触发器中引用同义词:

SELECT yyy_zzz_seq.NEXTVAL INTO AAA FROM DUAL

关于database - 架构名称与表名称 - 如何避免冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com