如何从 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 语句?的主要内容,如果未能解决你的问题,请参考以下文章