我正在努力确保RESTAURANTID
和TABLENUMBER
中的值,一起,是使用PowerDesigner (12.5)
的Unique
。我尝试创建一个alternate key
,结果在我的.sql
文件中出现以下内容:
create table TABLES
(
TABLEID int not null,
RESTAURANTID int not null,
TABLENUMBER int not null,
primary key (TABLESID),
key AK_mykey (RESTAURANTID, TABLENUMBER)
);
但是,有了这个,我仍然可以多次为RESTAURANTID
和TABLENUMBER
输入相同的值。
我用过这个http://www.tek-tips.com/viewthread.cfm?qid=403554以在CCD_ 10中创建CCD_。
有人知道在PowerDesigner
中实现这一目标的正确方法吗?
注意:这不是上面发布的问题的重复,因为我正在寻找一种在PowerDesigner
中实现这一点的方法,而不必在之后编辑生成的sql
文件。
MySQL中键(主键除外)的unique
属性存储为键上的扩展属性。
您可以通过显示并转到"关键点属性"对话框中的"MySQL
"选项卡来修改它。
或者,在Model>Keys
中,可以使用Customize Columns and Filter
按钮在键列表中显示Ext Unique
(扩展)属性,以便一次在多个键上设置此唯一属性。
或者,您可以创建自己的MySQL DBMS副本,并对其进行编辑。在Profile>Key
下(使用右键单击),添加一个具有以下Event Handler Script
的事件处理程序Initialize
,这样每个新键都设置了ExtUnique
:
Function %Initialize%(obj)
obj.setextendedattribute "ExtUnique",true
%Initialize% = True
End Function
您只是在添加一个普通索引。你需要的是一个独特的索引。只需在查询中将key AK_mykey (RESTAURANTID, TABLENUMBER)
替换为unique key AK_mykey (RESTAURANTID, TABLENUMBER)
,就完成了。
In Power Designer:
- 打开"TABLES"表属性(右键单击->属性)
- "关键点"选项卡
- 插入行(将其命名为"AK_mykey")
- 应用(先前插入的行已保存)
- 在"AK_mykey"行:右键单击->属性
- "列"选项卡
- "添加列"按钮
- 选择所需列(RESTAURANTID、TABLENUMBER)
- OK、OK、OK按钮
+1您可以在表格属性预览选项卡中检查结果。
alter table TABLES
add unique AK_mykey (RESTAURANTID, TABLENUMBER);