比如说我在表SITES
中有一个唯一的密钥集来包含字段site, permission
,我想使用外键来保持相同的引用键以匹配表中的site, permission
USERS
。是否可以在mysql中创建使用多键索引的关系?我也可以通过编程方式解决这个问题,但是如果可能的话,我宁愿将参照完整性限制在数据层。使用单一关系可能会导致使用错误的权限插入记录但是正确的站点,反之亦然。
提前致谢。
答案 0 :(得分:1)
正如我在评论中告诉你的那样:是的,你可以使用多列的约束。
您可以查看MySQL Reference Manual: Using FOREIGN KEY
constraints。
引用引用,语法为:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION
如您所见,您可以在约束中包含多个列。当然(更准确地说,显然),它们必须匹配,并且它们必须在两个表中都被索引。