我正在尝试使用RESTAURANTID
确保TABLENUMBER
和Unique
,一起中的值为PowerDesigner (12.5)
。我尝试创建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在alternate key
中创建PowerDesigner
。
有人知道在PowerDesigner
中实现此目的的正确方法吗?
注意:这与上面发布的问题不重复,因为我正在寻找一种在PowerDesigner
中实现此目的的方法,而无需编辑生成的{{1}之后的文件。
答案 0 :(得分:0)
您只是添加了一个普通索引。你需要的是一个独特的索引。只需在查询中将key AK_mykey (RESTAURANTID, TABLENUMBER)
替换为unique key AK_mykey (RESTAURANTID, TABLENUMBER)
,即可完成。
答案 1 :(得分:0)
MySQL中密钥(非主要密钥)的unique
属性存储为密钥的扩展属性。
您可以通过显示并转到密钥属性对话框中的MySQL
标签来修改它。
或者,在Model>Keys
中,您可以使用Customize Columns and Filter
按钮在键列表中显示Ext Unique
(扩展)属性,以便您可以在几个键上设置此唯一属性钥匙一下子。
或者,您可以创建自己的MySQL DBMS副本并进行编辑。在Profile>Key
下(使用右键单击),使用以下Initialize
添加事件处理程序Event Handler Script
,以便每个新密钥都设置为ExtUnique
:
Function %Initialize%(obj)
obj.setextendedattribute "ExtUnique",true
%Initialize% = True
End Function
答案 2 :(得分:0)
在Power Designer中:
+1您可以在表格属性预览标签中查看结果。
alter table TABLES
add unique AK_mykey (RESTAURANTID, TABLENUMBER);