如何从 db2 中的现有表中获取 CREATE TABLE 语句?

Posted

技术标签:

【中文标题】如何从 db2 中的现有表中获取 CREATE TABLE 语句?【英文标题】:How to get CREATE TABLE Statement from existing table in db2? 【发布时间】:2021-06-30 08:06:58 【问题描述】:

我正在使用 DB2 和 Oracle SQL Developer。 如何从现有表中获取 CREATE TABLE 语句?

表格太多,手动操作会很漫长。

【问题讨论】:

这能回答你的问题吗? Generate table DDL from DB2 11.1 LUW 【参考方案1】:

在 SQLDeveloper 中,如果您可以看到该表,则 SQL 选项卡中有初始的 Create Table 语句

你应该为每张桌子都这样做,这是一种方法,但我不确定它对你来说是否足够快。

【讨论】:

嗨。我看不到我的任何表的 SQL 选项卡。我能看到的唯一选项卡是列、数据、键、约束和索引。你能帮忙吗? 转到查看 -> 编辑器 -> SQL。你能从这里看到吗? 视图中没有“编辑器”选项 您使用的 SQLDev 版本是什么?我正在使用版本:18.1.0.095.1630;如果您使用的是旧版本,建议您更新到最新版本,看看是否有此选项。 我正在使用版本 3.1.07 并构建 MAIN-07.42【参考方案2】:

在 Db2 中有一个特殊的 db2look 实用程序用于 DDL 提取。您可以在此链接中参考其选项及其含义。

如果您希望 SQL 访问它的功能,您可以使用支持大多数实用程序选项的 SYSPROC.DB2LK_GENERATE_DDL 存储过程。该例程有一个输出参数在其调用后获取“调用号”int 值。 如果是单表:

CALL SYSPROC.DB2LK_GENERATE_DDL ('-e -noview -t MY_SCHEMA.MY_TABLE', ?);

SELECT SQL_STMT
FROM SYSTOOLS.DB2LOOK_INFO_V
WHERE OP_TOKEN = <value_of_output_parameter_from_call_above>
ORDER BY OP_SEQUENCE;

【讨论】:

以上是关于如何从 db2 中的现有表中获取 CREATE TABLE 语句?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Db2 中的十进制字段中获取无效值列表?

如何通过SQL从IBM db2中的查询中获取列名

如何使用 DB2 sql 检查不在两个表中的记录以获取另一个第三个表中的日期?

Ruby on Rails - 从 CSV 文件导入数据

如何从T-SQL中的排序表中从第M行开始获取N行

从 3 个表中获取数据时的 Db2 查询