当前位置: 首页 > 知识库问答 >
问题:

如何检查给定架构中是否存在表

红明德
2023-03-14

Postgres 8.4和更高版本的数据库在public架构中包含公共表,在company架构中包含公司特定表。
company架构名称始终以'company'开头,以公司编号结尾。
因此可能存在如下架构:

public
company1
company2
company3
...
companynn

应用程序总是与单个公司一起工作。
search_path相应地在odbc或npgsql连接字符串中指定,如:

search_path='company3,public'
select isSpecific('company3','tablenotincompany3schema')
select isSpecific('company3','tableincompany3schema')

如果给定的表同时存在于public和传递的模式中,则该函数应返回true
它应适用于Postgres8.4或更高版本。

共有1个答案

濮阳奇逸
2023-03-14

也许可以使用information_schema:

SELECT EXISTS(
    SELECT * 
    FROM information_schema.tables 
    WHERE 
      table_schema = 'company3' AND 
      table_name = 'tableincompany3schema'
);
 类似资料:
  • 问题内容: Postgres 8.4及更高版本的数据库在public架构中包含公用表,在架构中包含公司特定的表company。 company模式名称始终’company’以公司编号开头和结尾。 因此,可能会有类似以下的模式: 应用程序始终与单个公司一起使用。 的search_path相应指定在ODBC或连接Npgsql的字符串,如: 您如何检查指定表中是否存在给定表companyn? 例如: 应

  • 问题内容: 我想在更新密钥值之前测试字典中是否存在密钥。我写了以下代码: 我认为这不是完成此任务的最佳方法。有没有更好的方法来测试字典中的键? 问题答案: 是测试密钥是否存在的预期方法。 如果你想使用默认值,可以随时使用dict.get(): 如果你想始终确保任何键的默认值,则可以重复使用,也可以从模块中使用它,如下所示: 但总的来说,关键字是最好的方法。

  • 问题内容: 给定Linux进程的pid,我想从C程序检查该进程是否仍在运行。 问题答案: 发出信号作为系统调用。如果调用成功,则表示存在具有此pid的进程。 如果调用失败并设置为,则不存在具有此类pid的进程。 引用POSIX标准: 如果sig为0(空信号),则执行错误检查,但实际上未发送任何信号。空信号可用于检查pid的有效性。 请注意,您在竞争条件下并不安全:目标进程可能已退出,并且与此同时已

  • 问题内容: 我正在通过.NET应用程序中的ODBC驱动程序连接到Hive。是否存在查询以确定表是否已存在? 例如,在MSSQL中,您可以查询表,而在Netezza中,您可以查询表。 任何援助将不胜感激。 问题答案: 您可以通过两种方法进行检查: 1.)如@dimamah所建议,只需在此处添加一点,对于这种方法,您需要 2.)第二种方法是使用HiveMetastoreClient API,您可以在其

  • 问题内容: 有没有办法检查pid是否对应于有效进程?我从其他来源获得pid ,我需要检查计算机上是否不存在具有该pid的进程。 我需要它在Unix和Windows中可用。我也在检查PID是否未使用。 问题答案: 如果pid没有运行,则向pid发送信号0将引发OSError异常,否则不执行任何操作。

  • 我是boto3的新用户,我正在使用DynamoDB。 我浏览了dynamodbapi,没有找到任何方法告诉我是否已经存在一个表。 处理这个问题的最佳方法是什么? 我应该尝试创建一个新表并使用try-catch包装它吗?