PowerDesigner生成mysql字段comment 注释

PowerDesigner生成mysql字段comment 注释

 

最近需求出了新变化,再次开始 pd 之路,却发现很多以前熟练的操作俨然陌生,

好记性不如烂笔头一点不假。

 

1. 为什么没有注释

    在 pdm 视图中,默认 powerdesigner 是不会生成注释的。

 

2. 解决方案

    可以修改 mysql 文件生成模版来达到我们所需要的效果。

 

3. 生成注释

    在 pdm 视图中,Database --> Edit Current DBMS。

    找到 MySql5.0 --> Script --> Objects --> Column --> Add。

    a) 原来的内容

%20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%?
unsigned][%ZeroFill%? zerofill][ [.O:[character
set][charset]] %CharSet%][.Z:[ %NOTNULL%][%IDENTITY%?
auto_increment:[ default %DEFAULT%]][ comment %.q:@OBJTLABL
%]]

 

    b) 修改后的内容

%20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%?
unsigned][%ZeroFill%? zerofill][ [.O:[character
set][charset]] %CharSet%][.Z:[ %NOTNULL%][%IDENTITY%?
auto_increment:[ default %DEFAULT%]][ comment %.q:COMMENT%]
]

 

    c) 实际改动地方

          最后的@OBJTLABL 改为 COMMENT 就行了。

 

    d) 代码生成

          Database --> Generate Database。

          在 Format 页中,勾选 Generate name in empty comment单击确定就可以生成相应的代码,

          代码中就会出现上面的注释了。

 

 

4. 去除注释

    生成 SQL 文件时也包含了这些 comment,但是用这 SQL 文件生成数据库时,

    经常会因为 comment 太长而失败,在文件中一点一点的删除 comment 未免太麻烦。

 

    a) 去掉创建表的 comment

           DataBase --> Edit Current DBMS,依次点开 Script --> Objects --> Table --> Create。

           在 value 中将最后的[comment = "%TLABL%"]删除。

 

    b) 去掉 column 的 comment

           Script --> Objects --> Column --> Create,在 value 中,

           将最后的[ comment %.q:@OBJTLABL%]删除。

 

5. 注意事项

 

    a) index

           如果数据库设计中有 index,生成 SQL 文件时会把 drop index 放到文件的最前面,

           当第一次生成数据库时,由于没有 index 所以会报错,因此要把最前面的 dropindex 删掉,

           但手动删除还是麻烦,可以这样:

           CTRL + G,打开 Database Generation,选择 Options 选项卡,选择 Index,

           把右边的 Drop index 前的√去掉就行了。

 

    b) 表的注释

          有些 powerdesigner 版本按照上面的步骤修改后,还是没有注释生成,

          是因为没有表的注释设置缘故。

          DataBase --> Edit Current DBMS,找到 Mysql5.0 --> Script --> Objects

          --> Table --> TableComment。

          Value 中,增加如下内容:

alter table [%QUALIFIER%]%TABLE% comment %.60qA:COMMENT%


 

 

<think>好的,我现在需要帮助用户解决如何在PowerDesigner中将字段注释独立存储的问题。首先,我要理解用户的需求。用户可能在使用PowerDesigner设计数据库模型时,希望将字段注释(也就是字段的说明信息)单独存储,而不是直接保存在表结构中。这样做可能有维护方便或者与其他系统集成的考虑。 接下来,我需要回忆一下PowerDesigner的相关功能和操作。根据用户提供的引用内容,特别是引用[3]和[4],提到了通过脚本生成注释以及如何添加注释信息。另外,引用[1]中提到了字段的Name和Code属性,这可能与注释存储有关。用户提到的“独立存储”可能是指将注释存储在外部文件或其他位置,而不是直接嵌入到表的定义中。 首先,我需要确认PowerDesigner是否支持将注释信息存储到独立的位置。根据我的了解,PowerDesigner本身通常将注释存储在模型的元数据中,也就是与字段定义一起保存在同一个模型文件中。但用户可能需要将这些注释导出到外部文件,或者在生成SQL时将其作为单独的注释语句。 查看引用[3],用户提到了生成SQL注释的脚本方法,这可能涉及到在生成脚本时添加注释信息。如果用户希望注释独立存储,可能需要通过自定义脚本或扩展属性来实现。例如,可以将注释保存到扩展属性(Extended Attributes)中,或者使用自定义模板生成单独的注释文件。 另外,引用[4]提到了达梦数据库的字段映射和注释添加,这可能需要特定的配置。虽然用户的问题不特定于达梦数据库,但可以借鉴类似的步骤,比如在表属性中设置注释,并通过预览生成对应的SQL语句。 可能的解决方案步骤包括: 1. 使用扩展属性(Extended Attributes)来存储注释,这样可以在模型中独立管理。 2. 通过自定义脚本生成注释的SQL语句,并将其保存到外部文件。 3. 调整PowerDesigner的模板,使得在生成DDL时注释以独立的形式存在。 需要验证这些方法是否可行。例如,在PowerDesigner中,每个字段Comment属性通常用于存储注释生成SQL时会自动包含COMMENT ON语句。如果数据库支持(如MySQLCOMMENT),这可能已经满足需求。但用户希望独立存储,可能需要将COMMENT ON语句单独导出。 另外,用户可能需要将注释信息存储在模型的不同位置,例如使用自定义的附加属性或注释表。这可能需要使用PowerDesigner的脚本功能(如VBScript)来提取注释并保存到外部文件。 总结可能的步骤: 1. 在字段属性中填写注释。 2. 使用脚本导出所有注释到单独的文件。 3. 修改生成模板,将注释生成到独立的SQL文件中。 接下来,我需要验证这些步骤的可行性,并参考用户提供的引用链接,特别是引用[5]中的教程链接,可能提供更多操作细节。此外,引用[3]中的脚本方法可能可以修改用于导出注释。 最终,需要给出具体的操作步骤,例如通过工具中的脚本执行功能,编写VBScript遍历所有表和字段,将注释写入文本文件或单独的SQL文件,从而实现独立存储。</think>在PowerDesigner中实现字段注释独立存储可通过扩展属性和脚本生成两种方式实现。以下是具体操作步骤: ### 方法一:使用扩展属性独立存储 1. **添加扩展属性** - 右键点击表字段,选择"Properties" - 在"Extended Attributes"标签页新建$COMMENT属性 - 填写注释内容并保存,该属性独立于标准注释字段[^4] 2. **配置物理模型** ```vbscript ' Tools -> Execute Commands -> Edit/Run Script For Each col In ActiveModel.Tables.Columns col.ExtendedAttributes("DM_COMMENT") = col.Comment Next ``` 此脚本将标准注释映射到扩展属性[^3] ### 方法二:生成独立注释文件 1. **修改生成模板** - 打开Language -> Edit Current Language - 在"Comment"模板段添加: ```sql COMMENT ON COLUMN %TABLE%.%COLUMN% IS '%COMMENT%';\n ``` 2. **执行脚本导出** ```vbscript Option Explicit Dim fso, ts Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.CreateTextFile("comments.sql", True) For Each tbl In ActiveModel.Tables For Each col In tbl.Columns ts.WriteLine("-- " & tbl.Code & "." & col.Code) ts.WriteLine("COMMENT ON COLUMN " & tbl.Code & "." & col.Code & " IS '" & col.Comment & "';") Next Next ts.Close ``` 生成独立SQL注释文件[^5] ### 方法三:数据库反向工程 1. 配置数据库连接参数时 2. 在"Options"选项卡启用 ``` Extract columns' comments as extended attributes ``` 实现注释与模型元数据分离存储[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值