1

我有这两个表,分别称为“时间轴”和“宇宙”。在“时间线”中,我有一个名为“ID”的列,它必须是时间线 ID 在其相关宇宙 ID 之后的组合。出于这个原因,我创建了一个存储虚拟列作为“时间线”表的主键,称为“ID”。
此“ID”必须是同一张表中的其他两个列“UniverseID”和“TimelineID”的组合,因此虚拟列(“ID”)的表达式为:

CONCAT(UniverseID, ':', TimelineID)  

但是,UniverseID 必须引用“Universes”表中的“ID”列。因此,我尝试将其设为外键。但是有一个问题。我不能。这是我尝试做的事情:

ALTER TABLE `Timelines` ADD  CONSTRAINT `Timelines__UniverseID` FOREIGN KEY (`UniverseID`) REFERENCES `Universes`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE;

我得到这个错误:

 #1215 - Cannot add foreign key constraint

在任何其他表中都没有具有该名称的其他外键!

我应该怎么办 ?我的设计有问题吗?还是有其他方法可以获得相同的结果?

4

0 回答 0