在复合柱上唯一
Unique on Compound Columns
我正在尝试确保 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 在 PowerDesigner
中创建了 alternate key
。
有人知道在 PowerDesigner
中实现此目标的正确方法吗?
注意: 这不是上面发布的问题的重复,因为我正在寻找一种在 PowerDesigner
中实现此问题而无需编辑的方法之后生成 sql
文件。
您只是添加了一个普通索引。您需要的是唯一索引。只需在查询中将 key AK_mykey (RESTAURANTID, TABLENUMBER)
替换为 unique key AK_mykey (RESTAURANTID, TABLENUMBER)
即可。
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
在 Power Designer 中:
- 打开 "TABLES" table 属性(右键单击 -> 属性)
- 键选项卡
- 插入行(将其命名为"AK_mykey")
- 应用(先前插入的行已保存)
- 在 "AK_mykey" 行:右键单击 -> 属性
- 列选项卡
- 添加列按钮
- Select 所需的列 (RESTAURANTID, TABLENUMBER)
- 确定,确定,确定按钮
+1 您可以在 table 属性预览选项卡中查看结果。
alter table TABLES
add unique AK_mykey (RESTAURANTID, TABLENUMBER);
我正在尝试确保 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 在 PowerDesigner
中创建了 alternate key
。
有人知道在 PowerDesigner
中实现此目标的正确方法吗?
注意: 这不是上面发布的问题的重复,因为我正在寻找一种在 PowerDesigner
中实现此问题而无需编辑的方法之后生成 sql
文件。
您只是添加了一个普通索引。您需要的是唯一索引。只需在查询中将 key AK_mykey (RESTAURANTID, TABLENUMBER)
替换为 unique key AK_mykey (RESTAURANTID, TABLENUMBER)
即可。
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
在 Power Designer 中:
- 打开 "TABLES" table 属性(右键单击 -> 属性)
- 键选项卡
- 插入行(将其命名为"AK_mykey")
- 应用(先前插入的行已保存)
- 在 "AK_mykey" 行:右键单击 -> 属性
- 列选项卡
- 添加列按钮
- Select 所需的列 (RESTAURANTID, TABLENUMBER)
- 确定,确定,确定按钮
+1 您可以在 table 属性预览选项卡中查看结果。
alter table TABLES
add unique AK_mykey (RESTAURANTID, TABLENUMBER);