我在本地主机上使用mySQL数据库。创建了主键为的表和另一个外键指向该表的表,但是当我想看到结果时,我得到的只是MySQL返回emty result的“警报”。这是我的桌子
CREATE TABLE example_1(
ex1_id int NOT NULL AUTO_INCREMENT,
first_name varchar(50) NULL,
last_name varchar(50) NULL,
CONSTRAINT example_1_pk PRIMARY KEY (ex1_id)
);
CREATE TABLE example_2 (
ex2_id int NOT NULL AUTO_INCREMENT,
acces_lvl int NOT NULL,
CONSTRAINT example_2_pk PRIMARY KEY (ex2_id)
);
CREATE TABLE example_3 (
ex3_id int NOT NULL AUTO_INCREMENT,
first int NOT NULL,
second int NOT NULL,
CONSTRAINT example_3_pk PRIMARY KEY (ex3_id),
FOREIGN KEY (first) REFERENCES example_1(ex1_id),
FOREIGN KEY (second) REFERENCES example_2(ex2_id)
);
然后我给数据库添加了一些内容。
INSERT INTO `example_1`(`first_name`, `last_name`) VALUES ('foo', 'bar');
和
INSERT INTO `example_2`(`acces_lvl`) VALUES (2)
当我试着
SELECT * FROM `example_3`
我什么都没有,空的结果。不应该有其他桌子的证件吗?我是做错了什么,还是没做什么?我完全不懂数据库。
最佳答案
因为您没有在示例3中插入任何数据。外键约束不传播数据,它们只是强制数据关系,因此当您将数据插入到示例3中时,您在具有外键约束的列中放置的值在其他表中具有相应的值。
关于mysql - 外键返回空结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34157980/