我在本地主机上使用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/

10-16 14:41