复合柱上的独特之处

时间:2015-03-22 05:37:13

标签: mysql key unique powerdesigner compound-key

我正在尝试使用RESTAURANTID确保TABLENUMBERUnique一起中的值为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)
);

但是,我仍然可以多次为RESTAURANTIDTABLENUMBER输入相同的值。

我使用此http://www.tek-tips.com/viewthread.cfm?qid=403554alternate key中创建PowerDesigner

有人知道在PowerDesigner中实现此目的的正确方法吗?

注意:这与上面发布的问题不重复,因为我正在寻找一种在PowerDesigner中实现此目的的方法,而无需编辑生成的{{1}之后的文件。

3 个答案:

答案 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. 打开“TABLES”表格属性(右键单击 - >属性)
  2. 键标签
  3. 插入行(将其命名为“AK_mykey”)
  4. 应用(先前已插入的行保存)
  5. 在“AK_mykey”行:右键单击 - >特性
  6. 列标签
  7. 添加列按钮
  8. 选择所需的列(RESTAURANTID,TABLENUMBER)
  9. 好的,好的,OK按钮
  10. +1您可以在表格属性预览标签中查看结果。

    alter table TABLES
       add unique AK_mykey (RESTAURANTID, TABLENUMBER);