在复合列上唯一



我正在努力确保RESTAURANTIDTABLENUMBER中的值,一起,是使用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)
);

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

我用过这个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:

  1. 打开"TABLES"表属性(右键单击->属性)
  2. "关键点"选项卡
  3. 插入行(将其命名为"AK_mykey")
  4. 应用(先前插入的行已保存)
  5. 在"AK_mykey"行:右键单击->属性
  6. "列"选项卡
  7. "添加列"按钮
  8. 选择所需列(RESTAURANTID、TABLENUMBER)
  9. OK、OK、OK按钮

+1您可以在表格属性预览选项卡中检查结果。

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

相关内容

  • 没有找到相关文章

最新更新