如果没有具有该名称的列,为什么当我尝试按表名排序时,postgresql 不抱怨?

  • 本文关键字:排序 postgresql 如果没有 postgresql
  • 更新时间 :
  • 英文 :


如果我有一个表:

CREATE TABLE
    abc
    (
        xyz INTEGER,
        abc INTEGER
    );

我做:

select * from abc order by abc;

它按名为 ABC 的列工作和排序。

但是,如果我没有名为"abc"的列:

CREATE TABLE
    abc
    (
        xyz INTEGER,
        abcxyz INTEGER
    );

但我运行相同的查询:

select * from abc order by abc;

没有从Postgres返回的错误消息。

我只是想知道为什么 postgres 不返回错误消息,因为很明显,"abc"不是一个有效的列,所以我不可能按该列排序。

我正在使用PostgreSQL 9.6.7

Postgresql 在创建表时会创建一个带有结构的默认TYPE。所以当我们在查询中使用的时候会作为TYPE返回,来验证这一点,

在表中插入一行并运行此行

select pg_typeof(abc) from abc;

它给出了结果。

pg_typeof
abc

最新更新