gpt4 book ai didi

sql - Oracle SQL 在所有表中查找最高 ID

转载 作者:行者123 更新时间:2023-12-02 06:07:48 25 4
gpt4 key购买 nike

我的每个表都有一个“id”字段。考虑到表格列表可能会发生变化,我需要能够在所有表格中找到最高 ID。

有没有办法获取 oracle 数据库中的表列表,聚合它们的行(仅 id),然后获取 max()

附言这是为了更新一个不正常的序列。

最佳答案

下面是一些简单的动态 SQL 驱动数据字典:

SQL> set serveroutput on
SQL> declare
2 l_id pls_integer;
3 max_id pls_integer;
4 max_tab_name varchar2(30);
5 begin
6 max_id := 0;
7 for r in ( select table_name
8 from user_tab_columns
9 where column_name = 'ID' )
10 loop
11 execute immediate 'select max(id) from '||r.table_name
12 into l_id;
13 if l_id > max_id
14 then
15 max_id := l_id;
16 max_tab_name := r.table_name;
17 end if;
18 end loop;
19 dbms_output.put_line('Highest score = '||max_id||' table='||max_tab_name);
20 end;
21 /
Highest score = 2010070705 table=SESSIONS

PL/SQL procedure successfully completed.

SQL>

如果序列服务表跨越多个模式,您将需要关闭 ALL_TAB_COLUMNS 并在查询中包含 OWNER。

关于sql - Oracle SQL 在所有表中查找最高 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6934678/

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