【发布时间】:2018-06-27 06:12:37
【问题描述】:
我想声明一个选择查询以在触发器中使用它,但我一般是 sql 中的菜鸟:P 有人可以帮助我吗?
我的代码(示例):
DECLARE Primary_Keys VARCHAR(20);
BEGIN
SELECT cons.constraint_type
FROM all_constraints cons, all_cons_columns cols
WHERE cols.owner = 'DAB_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner;
END;
【问题讨论】:
-
你想在触发器中用它做什么?有比将查询存储在变量中更好的方法。
-
我的任务是创建一个函数/触发器(不管它是什么,只要它可以工作,我正在尝试使用触发器),如果我尝试,它会向主键添加一个值合并两个主键相同的数据库。我正在尝试通过通过 constraint_table 选择表中的所有 pk 并通过随机值对它们进行计数来解决该任务。
-
对于您要解决的实际问题,更好的解决方案是在合并的数据库中创建一个新序列并覆盖原始主键。您可能需要在审计表中记录原始主键和新主键(取决于您的整体要求)。
标签: oracle select plsql declare