首页 > 解决方案 > 如何使用 SQL 在 Informix 中列出特定数据库的模式?

问题描述

在 Informix 中获取特定数据库中模式名称列表的查询是什么?

标签: sqldatabaseinformix

解决方案


模式在 Informix 数据库中不常用,并且在数据库中几乎没有可跟踪性。支持 CREATE SCHEMA 表示法,因为它是 SQL-89 的一部分。AUTHORIZATION 子句用于确定使用 CREATE SCHEMA 语句创建的对象的(默认)“所有者”。没有什么可以阻止单个用户多次运行 CREATE SCHEMA 语句,无论是连续还是在不同的时间(在 Informix 实例中的任何给定数据库中)。

CREATE SCHEMA AUTHORIZATION "pokemon"
    CREATE TABLE gizmo (s SERIAL NOT NULL PRIMARY KEY, v VARCHAR(20) NOT NULL)
    CREATE TABLE widget(t SERIAL NOT NULL PRIMARY KEY, d DATETIME YEAR TO SECOND NOT NULL)
    ;

CREATE SCHEMA AUTHORIZATION "pokemon"
    CREATE TABLE object   (u SERIAL NOT NULL PRIMARY KEY, i INTEGER NOT NULL)
    CREATE TABLE "pikachu".complain (C SERIAL NOT NULL PRIMARY KEY, v VARCHAR(255) NOT NULL)
    ;

在 CREATE SCHEMA 语句执行后,无法跟踪这对表中的任何一对是作为同一模式的一部分一起创建的;无法知道这"pikachu".complain是代表"pokemon". 没有 DROP SCHEMA 语句需要这种支持。


推荐阅读