Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么不自动创建at关系表?(在mysql中)_Php_Mysql_Sql - Fatal编程技术网

Php 为什么不自动创建at关系表?(在mysql中)

Php 为什么不自动创建at关系表?(在mysql中),php,mysql,sql,Php,Mysql,Sql,我是sql方面的新手。我对英语不是土生土长的 所以,请原谅我的英语能力 这是我的mysql代码 最后五行是测试用的。从董事会和职位中进行选择工作正常 但是 它不起作用。此代码没有错误。但没有输出结果 我猜这意味着Save_Board_Post表中没有数据 我认为REFERENCES命令是在插入父表时自动创建数据的 如果没有,请告诉我如何自动创建关系数据。不,这不是引用所做的。引用约束的意思是,手动插入到Save_Board_Post表中的每一行都必须有boardID和Post表中存在的poste

我是sql方面的新手。我对英语不是土生土长的

所以,请原谅我的英语能力

这是我的mysql代码

最后五行是测试用的。从董事会和职位中进行选择工作正常

但是

它不起作用。此代码没有错误。但没有输出结果

我猜这意味着Save_Board_Post表中没有数据

我认为REFERENCES命令是在插入父表时自动创建数据的

如果没有,请告诉我如何自动创建关系数据。

不,这不是引用所做的。引用约束的意思是,手动插入到Save_Board_Post表中的每一行都必须有boardID和Post表中存在的posted。不会自动将任何内容插入到该表中

如果您试图表示帖子所在的板,那么适当的方法是将板ID设置为帖子的属性,例如

select * from Save_Board_Post where boardID= 'testBoard';

而不是为该数据创建一个完全独立的表。

您不能通过插入父表来自动将数据插入子表。你说它失败是因为表中没有数据,这是对的。存在引用完整性以删除数据库中的冗余。我认为没有办法通过插入父表来自动插入子表。您必须手动执行此操作。

fwiw,有一种方法可以自动插入到子表中。->请参见创建触发器[之前|之后]插入到..中。感谢您提供的信息。我想我有点生锈了。用户表示自己是新手。为了我们的集体利益,你能更好地解释一下吗?我以前从未使用过触发器。哦,我知道了,谢谢你的回答!
select * from Save_Board_Post where boardID= 'testBoard';
CREATE TABLE Post (
    postID INTEGER NOT NULL AUTO_INCREMENT,
    boardID CHAR(30) NOT NULL,
    ...
    FOREIGN KEY (boardID) REFERENCES Board(boardID)
);