Bootstrap

【PowerDesigner】Constraint name uniqueness问题及处理

使用PowerDesigner生成数据库脚本时报 Constraint name uniqueness 错误:

ConstraintNameUniquenessProblem-01

双击每行错误,发现外键引用的名字有重复的:

ConstraintNameUniquenessProblem-02

惯性去网上找解决办法,找到的主要是两个方法:

1.使用Automatic Correction

右键错误行,菜单中选择Automatic Correction,自动更正错误。

ConstraintNameUniquenessProblem-03

这样Constraint name 就会自动编号处理。

ConstraintNameUniquenessProblem-04

2.手动修改Constraint name

在外键引用编辑页面,点击Constraint name最右面的那个头像,然后修改Constraint name名称就可以了。

ConstraintNameUniquenessProblem-05

虽然可以解决问题,但感觉治标不治本。仔细看自动生成的Constraint name,应该是有一个模版,根据名称模板自动生成的。只要找到这个名称模板,根据自己的规则修改下不就好了。所以给出第三种处理方法。

3.修改引用名称模板

菜单项 数据库(Database)->Edit Current DBMS…
找到Scipt->Objects->Reference->ConstName节点,看到Value值就是自动生成的引用名称模板,具体含义就不解释了,对比下实际生成的引用名称就明白了,我改成 FK%REFR% ,让自动生成的名称就是外键编辑窗口中自定义的Code名称加个FK前缀就行了。

ConstraintNameUniquenessProblem-06

 

 

原文地址 http://c-xuan.com/2016/09/12/ConstraintNameUniquenessProblem/

 

修改外键命名规则

选择Database—>Edit Current DBMS
选择Scripts-》Objects-》Reference-》ConstName
可以发现右侧的Value为:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1
掌握这种方法后就可以按照自己的想法修改了

生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。

添加外键
Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段

如何实现Name和code不自动相等
如何实现在CDM中创建Entity时,Name和Code不自动对应

设置tools--Gerneral options--->dialog---->name to code mirroring

-------------------------------------

如何把NAME 列在 scrip里显示出来

 修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
     [[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

---------------------------------------------------------------------------------

POWERdESIGEN  自增长列的设置

PDM里查看表的属性,Columns选项卡,选中整列,查看列属性,点左上方的properties图标(有手形图案的那个),此时打开一个设置窗口,General选项卡里面进行设置.  
在列属性的General标签页里有个Identity复选框,勾上就行了

--------------------------------------
1 如何在PowerDesigner下建索引
2 如何在PowerDesigner 下建自增列
3 如何在PowerDesigner 下检查设计模型

  1 如何在PowerDesigner下建索引
  1 双击表设计图,出来Table Properties,在Tab 页中选择 Indexes

  2 单击新建索引的属性,出现Indexex Properties

  3 增加一个索引包含的字段

  2 如何在PowerDesigner 下建自增列
 2 使用SqlServer 数据库中的下列语句来完成
建表语句中,在要做为自增列的字段中,加上如下
IDENTITY(1,1)
还有可以使用下面语句,重置自增种子
dbcc checkident(ConfigSys,reseed,0);
  3 如何在PowerDesigner 下检查设计模型
  1 在菜单栏中选择 Tools - Check Model, 如下图

  2 选择要检查的每项设置

  3 确定后,将出来检查结果汇总信息

;