MYSQL-为什么我的外键接受任何值?

时间:2019-02-12 02:14:45

标签: mysql sql phpmyadmin relational-database

我正在尝试在两个表之间创建一对一的关系。每当我尝试执行INSERT来验证子表中的外键是否正确设置时,外键都接受任何值,而不是要求它与父表中相应列中的值匹配。例如,这没有问题

MYSQL - INSERT INTO Orders(PersonID) VALUES(random INT not in parent table)

我正在使用PHPmyAdmin,据我所知,一切看起来都不错。这就是我创建表格的方式

CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    PRIMARY KEY(PersonID)
);

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

据我了解,这应该要求Orders表中FOREIGN KEY的任何行都与Persons表中现有行的值匹配。但是,上面发布的INSERT INTO语句可以正常工作。我没有正确理解什么?我做了很多搜索,发现的所有内容似乎都表明SQL应该在这样的INSERT语句上返回错误。预先感谢您提供任何答案。

0 个答案:

没有答案