PowerDesigner 导出的SQL脚本不带字段注释,解决办法

Posted 皮豪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerDesigner 导出的SQL脚本不带字段注释,解决办法相关的知识,希望对你有一定的参考价值。

问题

PowerDesigner默认导出来的SQL没有注解。这一点是因为你没有添加Comment。

新问题

如果每个表都需要添加一个重复的Comment,那样太麻烦了。
所以可以直接改他的模板,把Comment换成Name。

原理 类似于 comment $comment => comment $name

菜单栏:Database > Edit Current DBMS... >

找到图中的ADD,
默认的模板是

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

改成

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

其实就是把 %.q:@OBJTLABL% 改成了 %.q:COLNNAME%。

PowerDesigner 创建表格及导出SQL语句

目的:提高数据库创建表格效率 
测试数据库:orcale

1.新建物理模型。

右键点击workplace,new一个物理模型并指定数据库。

技术分享图片

2.创建表格

技术分享图片

设置字段属性

技术分享图片

新增字段属性(比如加字段注释)

技术分享图片

3.导出sql语句及预览

技术分享图片

技术分享图片

初次使用会发现orcale的sql语句,带双引号、字母大写,后面有解决方案 
也可在Options选项卡里,可以个性化选择和配置sql脚本,如取消外键,去除drop语句等。

4.去除双引号

选择Database->Edit Current DBMS菜单

技术分享图片

选中General选项卡,依次打开Script->Sql->Fomat->CaseSensitivityUsingQuote

技术分享图片

5.字母批量大写转换

直接跑脚本,找到Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X调出脚本执行窗口,输入下边的代码就可以了。

技术分享图片

转换到大写的VB代码

Option Explicit  
ValidationMode = True  
InteractiveMode = im_Batch  
Dim mdl ‘ 当前模型  
‘ 获取当前模型  
Set mdl = ActiveModel  
If (mdl Is Nothing) Then  
   MsgBox "没有打开一个模型" 
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then  
   MsgBox "当前模型不是一个PDM" 
Else  
‘调用处理程序  
   ProcessFolder mdl  
End If    
‘调用的处理程序  
Private sub ProcessFolder(folder)  
   Dim Tab ‘要处理的表  
   for each Tab in folder.Tables  
    ‘ if not Tab.isShortcut then  
        ‘ Tab.code = tab.name  
        ‘表名处理,前边添加前缀,字母小写  
        Tab.name=  UCase(Tab.name)  
        Tab.code= UCase(Tab.code)  
         Dim col ‘ 要处理的列  
         for each col in Tab.columns  
            ‘列名称和code全部小写,大写诗UCase  
            col.code= UCase(col.code)  
            col.name= UCase(col.name)  
         next  
      ‘end if 
   next    
‘ 处理视图  
‘  Dim view ‘running view  
‘   for each view in folder.Views  
   ‘   if not view.isShortcut then  
       ‘  view.code = view.name  
    ‘  end if 
  ‘ next     
   ‘ 递归进入 sub-packages  
   Dim f ‘ sub  folder  
   For Each f In folder.Packages  
      if not f.IsShortcut then  
         ProcessFolder f  
      end if 
   Next  
end sub 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

======================华丽的分割线==================== 
下面的都是有可能用的着的

6.不同数据库之间的转化

案列: orcal—》mysql 
做法:Database→Change Current DBMS→选择要转换成的目标数据库 
技术分享图片

结果: 
技术分享图片

然后可以使用notepad++,将字母转换成小写就可以了。因为MySQL是区分大小写的。

7.Orcale 建立自增主键

双击表打开属性窗口→勾选P主键复选框→双击设置为主键的字段(在行的头部双击)或者单击上方的属性图标按钮→在打开的窗口下方(注意不同数据库不一样,sql server是identity复选框)选择sequence,如果没有则单击旁边的新建按钮创建一个sequence。

技术分享图片

8.导入sql脚本生成相应的数据库表模型图

File→Reverse Engineer→Database…→修改模块名称并选择DBMS

技术分享图片

Using script files→点击下方图标(Add Files)来添加sql脚本文件→确定

技术分享图片







以上是关于PowerDesigner 导出的SQL脚本不带字段注释,解决办法的主要内容,如果未能解决你的问题,请参考以下文章

PowerDesigner建模后导出sql脚本,再导入mysql中

powerdesigner导出SQL

PowerDesigner16 设置导出sql文件的编码

PowerDesigner导出mysql脚本

powerdesigner 生成sql脚本

PowerDesigner 创建表格及导出SQL语句