Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
PostgreSQL视图错误_Postgresql - Fatal编程技术网

PostgreSQL视图错误

PostgreSQL视图错误,postgresql,Postgresql,我在psql和Centos中创建视图时遇到问题 我有一个包含查询的文件。看起来像这样 当我这样做的时候 psql -d cjones< order_tester.sql psql-d cjones

我在psql和Centos中创建视图时遇到问题

我有一个包含查询的文件。看起来像这样

当我这样做的时候

psql -d cjones< order_tester.sql
psql-d cjones
它运行正常

然后我尝试创建一个视图,这就是我遇到的问题


除非我遗漏了一些相同的文本,但这表明gme中存在列id问题。有什么想法吗?

JayC和JNevill在评论中给了你答案。创建视图时,不能有两个名称相同的列

他们说你不能做
选择*
,而是必须做类似的事情

SELECT con.id AS contact_id, cust.id AS customer_id, etc.

我想补充的是,如果您希望能够使用
SELECT*
创建视图,然后,当您创建表格时,您可以避免使用诸如
id
之类的通用术语,相反,您的
contacts
表格可以有一个
contact\u id
列,而您的
customers
表格可以有一个
customer\u id
列。这样就不会遇到问题。

视图的列名必须具有唯一标识符。但是,当您只是运行一个查询时,并没有这样的问题,输出只是方便地标记(这些标签不一定是正确的列名,IIRC)。。。那么,如果需要两个id字段,如何解决这一问题呢..不必选择*
,而是引用每一列,并为第二列和第三列提供唯一的别名,但显然我还没有足够的声誉点来做这件事:P所以为了添加我的评论,除了添加我的评论之外,我总结了他们所说的话,这样就不会断章取义了。