我正在寻找一种方法来查找Postgres中所有表的行数.我知道我可以一次做一张桌子:
SELECT count(*) FROM table_name;
Run Code Online (Sandbox Code Playgroud)
但我希望看到所有表格的行数,然后按顺序排列,以了解我所有表格的大小.
Postgres 8.4及更高版本的数据库包含public模式中的模式和公司特定表中的公用表company.
company模式名称始终'company'以公司编号开头并以公司编号结束.
所以可能有以下模式:
public
company1
company2
company3
...
companynn
Run Code Online (Sandbox Code Playgroud)
应用程序始终适用于单个公司.
的search_path相应指定在ODBC或连接Npgsql的字符串,如:
search_path='company3,public'
Run Code Online (Sandbox Code Playgroud)
如何检查给定表是否存在于指定的companyn模式中?
例如:
select isSpecific('company3','tablenotincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该返回false,并
select isSpecific('company3','tableincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该回来true.
在任何情况下,该函数应仅检查companyn传递的模式,而不检查其他模式.
如果两者public和传递的模式中都存在给定的表,则该函数应该返回true.
它适用于Postgres 8.4或更高版本.
是否有可能在每个表的每个字段中搜索Oracle中的特定值?
在一些表中有数百个表有数千行,所以我知道这可能需要很长时间才能查询.但我唯一知道的是我想要查询的字段的值是1/22/2008P09RR8.<
我已经尝试使用下面的这个语句根据我认为应该命名的内容找到一个合适的列,但它没有返回任何结果.
SELECT * from dba_objects
WHERE object_name like '%DTN%'
Run Code Online (Sandbox Code Playgroud)
这个数据库绝对没有文档,我不知道该字段的来源.
有什么想法吗?
我已经找到了答案,但我能找到的只是人们询问如何搜索数据库中所有表的所有列的值.我只想搜索特定表的所有列.人们为所有表格提出的代码问题很复杂,我很难弄清楚它在哪里搜索特定的表格.有人可以帮帮我吗?谢谢
为了放弃阅读整个问题,我的基本问题是:
PostgreSQL中是否有一个函数来转义字符串中的正则表达式字符?
我已经探测过文档,但无法找到这样的功能.
这是完整的问题:
在PostgreSQL数据库中,我有一个包含唯一名称的列.我还有一个定期在此字段中插入名称的进程,并且为了防止重复,如果需要输入已存在的名称,它会在末尾附加一个空格和括号.
即姓名,姓名(1),姓名(2),姓名(3)等
就目前而言,我使用以下代码来查找要在系列中添加的下一个数字(用plpgsql编写):
var_name_id := 1;
SELECT CAST(substring(a.name from E'\\((\\d+)\\)$') AS int)
INTO var_last_name_id
FROM my_table.names a
WHERE a.name LIKE var_name || ' (%)'
ORDER BY CAST(substring(a.name from E'\\((\\d+)\\)$') AS int) DESC
LIMIT 1;
IF var_last_name_id IS NOT NULL THEN
var_name_id = var_last_name_id + 1;
END IF;
var_new_name := var_name || ' (' || var_name_id || ')';
Run Code Online (Sandbox Code Playgroud)
(var_name包含我试图插入的名称.)
这暂时有效,但问题出在WHERE声明中:
WHERE a.name LIKE var_name || ' (%)'
Run Code Online (Sandbox Code Playgroud)
此检查不会验证有%问题的数字,并且它不会考虑多个括号,如"Name((1))",如果存在任何一种情况,则会抛出强制转换异常.
该WHERE声明确实需要像更多的东西: …
在 PgAdmin 中,是否可以在所有表中搜索值?在 phpmyadmin 中这是可能的并且非常方便。您搜索一个 ID 值并找到它出现的所有表。我似乎无法在 PgAdmin 中找到此功能。
它存在吗?
我有一个庞大的数据库,我不介意离开搜索一段时间,但我不能因各种原因转储整个数据库.我能写的最简单的查询是什么,它将搜索数据库中所有表的所有字段以获取特定的文本字符串?
以下内容不起作用,但应展示我希望看到的内容:
SELECT * FROM * where * like '%mystring%'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
postgresql ×5
sql ×3
count ×1
database ×1
escaping ×1
oracle ×1
pgadmin ×1
plpgsql ×1
plsql ×1
regex ×1
search ×1
search-path ×1
sql-server ×1