近几日在使用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
表后边就可以了。
完成
最后的话:
如果没有经过系统的学习,写代码时的规范也不会严谨。遇到的坑会非常的多。冷静思考,就能找到解决方法。