我正在尝试在两个表之间创建一对一的关系。每当我尝试执行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语句上返回错误。预先感谢您提供任何答案。