DB2 system table resource

本文提供了一系列SQL查询语句,用于检查DB2数据库中的各种对象,包括用户表、表列信息、序列、触发器及存储过程等。这些查询有助于了解数据库结构并进行维护。


-- CHECK USER TABLES
SELECT NAME FROM SYSIBM.SYSTABLES WHERE CREATEDBY = CURRENT_SCHEMA
SELECT NAME FROM SYSIBM.SYSTABLES WHERE CREATEDBY = '<USERNAME>'

-- CHECK TABLE COLUMNS INFORMATION
SELECT NAME, COLTYPE, LENGTH FROM SYSIBM.SYSCOLUMNS WHERE TBNAME = 'EMPLOYEE' AND TBCREATOR = CURRENT_SCHEMA

-- CHECK SEQUENCES
SELECT NAME FROM SYSIBM.SYSSEQUENCES WHERE CREATEDBY = CURRENT_SCHEMA

-- CHECK TRIGGERS
SELECT NAME FROM SYSIBM.SYSTRIGGERS WHERE CREATEDBY = CURRENT_SCHEMA

-- CHECK PROCEDURE AND FUNCTION
SELECT NAME FROM SYSIBM.SYSROUTINES WHERE ROUTINETYPE = 'P' AND CREATEDBY = CURRENT_SCHEMA
SELECT NAME FROM SYSIBM.SYSROUTINES WHERE ROUTINETYPE = 'F' AND CREATEDBY = CURRENT_SCHEMA

-- CHECK INDEXES

SELECT NAME FROM SYSIBM.SYSINDEXES WHERE TBNAME = '<TABLENAME>'

### 创建表的语法与示例 在 Db2 数据库中,可以通过 `CREATE TABLE AS` 语句基于现有的查询结果快速创建一张新表。此方法允许用户直接从一个或多个现有表中提取数据并将其插入到新建的表中。 #### 语法结构 以下是 `CREATE TABLE AS` 的基本语法: ```sql CREATE TABLE new_table_name AS ( SELECT column1, column2, ... FROM existing_table_name [WHERE condition] ) [DEFINITION ONLY]; ``` - **new_table_name**: 新建表的名称。 - **existing_table_name**: 查询所涉及的一个或多张已有表的名字。 - **column1, column2,...**: 要选择的具体列名列表。 - **condition**: 可选条件用于过滤记录。 - **DEFINITION ONLY**: 如果指定该选项,则仅会复制表结构而不会实际插入任何数据[^1]。 #### 示例说明 假设有一个名为 `admin` 的表,其中包含管理员的相关信息(如 ID、姓名和年龄),现在希望根据这些字段创建一个新的临时表 `tmp_admin` 并填充相应的内容。可以按照如下方式进行操作: ```sql CREATE TABLE tmp_admin AS ( SELECT id, admin_name, age FROM admin ); ``` 这条命令将会依据 `admin` 表中的 `id`, `admin_name`, 和 `age` 字段构建新的表格 `tmp_admin` 同时也将原始的数据拷贝过去[^1]。 如果只需要建立相同的架构而不导入具体数值的话,在上述基础上增加参数即可: ```sql CREATE TABLE tmp_admin AS ( SELECT id, admin_name, age FROM admin ) WITH NO DATA; -- 或者使用 DEFINITION ONLY 替代 WITH NO DATA ``` 这里需要注意的是,当采用这种方式生成目标表的时候,默认情况下源表里的索引、触发器以及约束并不会自动迁移至目的端;若想保留它们则需额外手动设定[^2]。 另外关于异常处理部分提到过,在编写复杂业务逻辑比如涉及到事务控制或者错误捕捉机制下的存储过程中需要用到特定声明来应对可能出现的各种状况,像下面这样设置好对应类型的处理器就能有效管理程序流走向[^4]: ```sql BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- Your code here... END; ``` 以上就是有关于如何利用 Db2 中的 `CREATE TABLE AS SELECT` 功能实现高效便捷地由已知资料衍生新型态资源的方法介绍及其注意事项解析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值