近几日在使用postgreSQL写数据库的table时遇见了一个问题。几经周折,终于找到这个错的原因。现在总结一下。
看一下报错信息:
在create table ca.feedback之后,在DOS窗口运行server文件,出现报错信息ERROR: relation "ca.person" does not exist。在创建table时,ca.person这个表是早在之前就已经创建的。因此在查看多次之后,仍然没有找到解决的措施。
看一下server文件中创建表的代码
经过再三排查之后,发现在ca.feedback中的字段person_id是依赖于ca.person表的id的。但是在代码中可以明显的看到 ca.person表是在ca.feedback表之后创建的。因此在ca.feedback表中根本找不到他reference的那个表的相应id字段。他是自上而下进行创建table的,依赖关系,主键外键的关系也是自上而下进行确认的。
把ca.feedback表移到ca.person表后边就可以了。
完成
最后的话:
如果没有经过系统的学习,写代码时的规范也不会严谨。遇到的坑会非常的多。冷静思考,就能找到解决方法。