PowerDesigner小技巧

本文汇总了PowerDesigner使用过程中的常见问题及解决方案,包括如何使用MySQL的auto_increment特性、去掉SQL脚本中的双引号、批量生成测试数据等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址:http://fengyie007.iteye.com/blog/232784

1、PowerDesigner 使用MySQL的auto_increment
  ◇问题描述:
  PD怎样能使主键id使用MySQL的auto_increment呢?

   ◇解决方法:
   打开table properties窗口 → columns → 选中id列 → 打开columns properties窗口 → 勾选identity即可
   注意:概念模型没有此选项,物理模型才有

2、PowerDesigner 去掉SQL脚本中的双引号
   ◇问题描述:
   PD生成Oracle数据库建表SQL时,默认会给表名和字段名加上双引号,怎样能去掉SQL脚本中的双引号呢?

   ◇解决方法:
   把Database → Edit Current DBMS → General → Script → Sql → Format → CaseSensitivityUsingQuote设置为NO即可

3、PowerDesigner 生成SQL语句时不使用Domain
   ◇问题描述:
   如果在PD中使用了Domain,生成SQLServer的数据库SQL的脚本中会使用与Domain对应的自定义数据类型,而不会使用 SQLServer自己的数据类型,怎样能让PD生成SQL语句时使用SQLServer自己的数据库类型,而不是Domain对应的自定义数据类型呢?

   ◇解决方法:
   把Database → Edit Current DBMS → General → Script → Objects → Domain → Enable设置为NO即可

4、PowerDesigner 中设置Entity的默认字体
   ◇问题描述:
   创建Entity时,如果PD默认字体不适合自己的个人习惯,每次创建了一个实体后都要修改实体的字体,非常麻烦,是否有只修改一次一劳永逸的方法呢?

   ◇解决方法:
   Tools → Display Preferences... → Format → Entity → Modity... → Font → 进行相应修改并保存设置 → Set As Default

5、PowerDesigner 中设置Entity自动调整尺寸大小
   ◇问题描述:
   当给Entity添加了字段或其他修改时,Entiry的显示尺寸大小不会自动调整,怎样解决呢?

   ◇解决方法:
   在Entity上点击右键 → 单击Format...菜单项 → 选择size标签页 → 勾选Auto adjust to text即可

6、在修改name的时候,code的值将跟着变动  
◇问题描述:
   在修改name的时候,code的值将跟着变动,怎样解决呢?

   ◇解决方法:
   PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了

7、PowerDesigner 生成SQL的Existence of refernce错误问题
◇问题描述:
用PowerDesigner生成SQL语句时,提示Existence of refernce错误。

◇原因:
该表没有与其他表的关联(如外键等),而PowerDesigner需要存在一个refernce才能生成SQL.

◇解决方法:
在工具栏空白处右键打开Palette面板,选中Link/Extended Dependency 按钮,然后在提示出错的表上添加到自己的Dependency。重新生成SQL,你将发现刚才提示的错误没有了,问题解决。

8、利用PowerDesigner批量生成测试数据
◇解决方法:
A:在PowerDesigner 建表
B:然后给每一个表的字段建立相应的摘要文件,步骤如下:
Model->Test Data Profiles配置每一个字段摘要文件General:输入Name、Code、
选择Class(数字、字符、时间)类型
选择Generation Source: Automatic、List、ODBC、File Detail:配置 字段相关信息
所有字段摘要文件配置完成后双击该表->选择字段->Detail->选择Test Data Parameters 摘要文件如果字段值与其它字段有关系在: Computed Expression 中输入计算列--生成测试数据:
DataBase->Generation Test Data->选择:
Genration 类型(Sript、ODBC)
Selection(选择要生成的表)
Test Data Genration(Default number of rows 生成记录行数)

9、E-R图中,同时显示Name和Code
◇问题描述:E-R图中,默认显示的只有Name、Date Type,如果让Name、Code同时显示该怎么办呢?

◇解决方法:双击E-R图,切换到Columns->Customize Columns Fileter,将StereoType勾上,然后将StereoType的值设置成和Name一致;然后Tools->Model Options->Name Convention->Display一栏选Code

10、PowerDesigner,将name列批量转换成comment
Option   Explicit 
ValidationMode = True
InteractiveMode = im_Batch

Dim mdl ' the current model

' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If

' This routine copy name into comment for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
col.comment= col.name
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next

' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub


11、PowerDesigner,将comment列批量转换成name
Option   Explicit 
ValidationMode = True
InteractiveMode = im_Batch

Dim mdl ' the current model

' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If

Private sub ProcessFolder(folder)
On Error Resume Next
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.name = tab.comment
Dim col ' running column
for each col in tab.columns
if col.comment="" then
else
col.name= col.comment
end if
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.name = view.comment
end if
next

' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值