Mysql 复合柱上的唯一
我正在尝试使用Mysql 复合柱上的唯一,mysql,key,unique,powerdesigner,compound-key,Mysql,Key,Unique,Powerdesigner,Compound Key,我正在尝试使用PowerDesigner(12.5)确保RESTAURANTID和TABLENUMBER,中的值是唯一的。我尝试创建了一个备用键,在我的.sql文件中产生了以下结果: create table TABLES ( TABLEID int not null, RESTAURANTID int not null, TABLENUMBER int not null, primary key (TABLESID
PowerDesigner(12.5)
确保RESTAURANTID
和TABLENUMBER
,中的值是唯一的。我尝试创建了一个备用键
,在我的.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
输入相同的值
我用它在PowerDesigner
中创建了备用键
有人知道在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
(使用右键单击)下,使用以下event handler Script
添加事件处理程序Initialize
,以便每个新键都设置了ExtUnique
:
Function %Initialize%(obj)
obj.setextendedattribute "ExtUnique",true
%Initialize% = True
End Function
在Power Designer中:
打开“表”表属性(右键单击->属性)
键选项卡
插入行(将其命名为“AK_mykey”)
应用(先前插入的行已保存)
在“AK_mykey”行:右键单击->属性
列选项卡
添加列按钮
选择所需的列(RESTAURANTID、TABLENUMBER)
好,好,好按钮
+1您可以在“表格属性预览”选项卡中检查结果
alter table TABLES
add unique AK_mykey (RESTAURANTID, TABLENUMBER);
您要查找的是复合关键点约束。看看这篇文章,了解更多关于这种钥匙的信息,谢谢洛伦兹。您知道如何仅使用PowerDesigner
来完成此操作吗?这样我以后就不需要编辑生成的SQL
文件了?对不起,我从未使用过PowerDesigner。我使用phpmyadmin。