0

我试图确保RESTAURANTIDTABLENUMBER中的值一起使用。我尝试创建一个在我的文件中导致以下内容的文件:UniquePowerDesigner (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 keyin PowerDesigner.

有人知道实现这一目标的正确方法PowerDesigner吗?

注意:这不是上面发布的问题的重复,因为我正在寻找一种方法来实现这一点,PowerDesigner而无需sql随后编辑生成的文件。

4

3 回答 3

0

您只是添加一个普通索引。您需要的是唯一索引。只需在查询中替换key AK_mykey (RESTAURANTID, TABLENUMBER)unique key AK_mykey (RESTAURANTID, TABLENUMBER)就可以了。

于 2015-03-22T06:31:54.847 回答
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
于 2015-03-23T09:06:22.523 回答
0

在电源设计器中:

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

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

alter table TABLES
   add unique AK_mykey (RESTAURANTID, TABLENUMBER);
于 2017-12-08T11:20:31.163 回答