一个表中的两列是否可以具有指向另一表中同一列的外键?

Zym*_*mus 5 mysql sql foreign-keys foreign-key-relationship

我的数据库中有两个表:Person 和 Pet。

CREATE TABLE Person (
    id INT NOT NULL,
    PRIMARY KEY (id)
)

CREATE TABLE Pet (
    id INT NOT NULL,
    original_owner INT NOT NULL,
    current_owner INT NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (original_owner)
        REFERENCES Person(id),
    FOREIGN KEY (current_owner)
        REFERENCES Person(id)
)
Run Code Online (Sandbox Code Playgroud)

我试图参考每只宠物的前任主人和当前主人。我也尝试过

CREATE TABLE Pet (
    id INT NOT NULL,
    original_owner INT NOT NULL,
    current_owner INT NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (original_owner, current_owner)
        REFERENCES Person(id, id)
)
Run Code Online (Sandbox Code Playgroud)

CREATE TABLE Pet (
    id INT NOT NULL,
    original_owner INT NOT NULL,
    current_owner INT NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (original_owner, current_owner)
        REFERENCES Person(id)
)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

错误代码:1215。无法添加外键约束

这有可能实现吗?或者我是否必须创建某种桥接表来适应这种情况?

Zym*_*mus 0

问题是我在脚本中定义的表的顺序。我让 Pet 出现在 Person 之前。一旦我把人放在宠物之上,它就工作得很好。问题中的示例是我自己写的,因为当我发布它时,我手头没有实际的代码。