我在localhosts上使用了一个mySQL数据库。创建具有主键的表和另一个具有指向该键的外键的表,但是当我想看到结果时,我发出的所有结果都是“警告”MySQL返回了emty结果。这是我的表格
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)
);
然后我向db添加一些内容,例如
INSERT INTO `example_1`(`first_name`, `last_name`) VALUES ('foo', 'bar');
和
INSERT INTO `example_2`(`acces_lvl`) VALUES (2)
然后当我尝试
SELECT * FROM `example_3`
我什么都没有,空洞的结果。不应该有来自其他表的id?我做错了什么,或者我没做什么事?我在数据库中完全是菜鸟。
答案 0 :(得分:1)
因为您没有在example_3中插入任何数据。外键约束不传播数据,它们只是强制执行数据关系,因此当您将数据插入example_3时,放入具有外键约束的列中的值在其他表中具有相应的值。