注意PostgreSQL的关键字(保留字)和identified的用法和位置

关键字即词法解析时用到的一些固定的单词,identifier则是用户定义的一些名词(如表名,索引名,字段名,函数名等等)
PostgreSQL 有一张关键字列表
https://www.postgresql.org/docs/9.5/static/sql-keywords-appendix.html
在这个列表中的关键字,如果出现的位置可以是identified,则会报错。
https://www.postgresql.org/docs/9.5/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
例子:

postgres=# select 1 and;
ERROR:  syntax error at or near ";"
LINE 1: select 1 and;
                    ^

and就是一个关键字,并且他出现在了可以是identifer的位置,所以要解决这个问题就是加双引号,或者排除歧义。
使用双引号引排除歧义,把它变成别名identifier。

postgres=# select 1 "and";
 and
-----
   1
(1 row)

使用as改变词法,排除歧义,把它变成别名。

postgres=# select 1 as and;
 and
-----
   1
(1 row)

还有,如果key words出现在identifier位置时,还可能是定义名称的位置。
例子

postgres=# create table and (id int);
ERROR:  syntax error at or near "and"
LINE 1: create table and (id int);
                     ^
postgres=# create table "and" (id int);
CREATE TABLE

postgres=# drop table and;
ERROR:  42601: syntax error at or near "and"  -- 这里明确告诉你and错误了
LINE 1: drop table and;
                   ^
LOCATION:  scanner_yyerror, scan.l:1087
postgres=# drop table "and";
DROP TABLE

所以,如果你遇到类似的错误,用双引号,或者换名字即可。

时间: 2024-08-29 13:32:49

注意PostgreSQL的关键字(保留字)和identified的用法和位置的相关文章

PostgreSQL Oracle兼容性 之 - parser SQL保留|关键字(keywrods)大全

标签 PostgreSQL , keywords , 关键字 , Oracle 兼容性 背景 PostgreSQL数据库中有哪些关键字,这些关键字的使用限制如何? https://www.postgresql.org/docs/10/static/sql-keywords-appendix.html 文档中的说明并不是特别清晰,(并且KEYWORDS与版本强相关),所以使用pg_get_keywords这个系统函数得到的,更加准确可读. https://www.postgresql.org/do

SEO优化之关键字技巧

要点:关键词选取.关键词位置.关键词密度 1.确定网站定位内容总共包含的关键词,通常有几百个.频道建设初期选取10-20个左右最核心的关键词,以及由这些词衍生的关键词作为首批优化的对象. 2.提高google Double-Listing 的可能性.特别是文章最终页的核心关键字可以是1个为主,伴随2,3个衍生词. 3.将重要突出的关键字尽量放在首页靠前的位置,为每个栏目页,列表页均匀的分配不同的关键词. 4.尽量将需要优化的关键词组靠近放置在一个网页中.(例如 想优化 Windows Vista

善用百度统计了解网站关键字健康情况

百度统计工具是广大站长朋友再熟悉不过的了,在工具当中有一项是专门监控关键排名的,在大家把注意力都集中到关键字排名的时候,其实我们是可以根据一阶段的关键字排名情况得到一组曲线(主机点评网定义其之为"关键字曲线"),根据曲线我们可以更加深刻的了解到网站关键字的健康状况,可以得到更多信息用以帮助我们提升关键字排名,从而达到网站流量上升的目的. 今天主机点评网为广大站长朋友介绍几种曲线.选取关键字排名时间从8.1到10.10. 一. 稳定型曲线 如下图,这类关键字排名较为稳定,这类关键字多属于

有关SEO关键字策略规划的技巧心得分享

网络上谈SEO的文章是漫天飞舞,有基础性教程.有心得分享.也有东搬西凑的.但是对SEO关键字策略规划的系统性文章相对较少,菜根谭分享下自己这方面的一些心得感悟. 首先,对SEO有些了解的应该都知道,SEO是一个系统工程,有站内代码标签优化.站内内容优化.站外链接建设.域名空间因素这几大模块.但是,菜根谭网络营销机构认为,在具体操作这些细节之前,我们应该先进行关键字策略分析. 经常看见很多网站的SEO不重视关键字分析,网站关键字都是凭空想象,以主观意志来选择关键字,或者一味选择广泛且竞争力的关键字

PostgreSQL Oracle 兼容性 - order by INT(select位置 position)

标签 PostgreSQL , order by , 排序 , 字段 , 表达式 , 位置 背景 在一些Oracle的用户中,会问到是否支持order by INT这样的查询语法.它是什么意思呢?实际上就是按查询子句的第几个表达式进行排序. https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm ORDER [ SIBLINGS ] BY { expr | position | c_alias } [

PostgreSQL SQL语法(三):调用函数

本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. PostgreSQL允许带有命名参数的函数被使用位置或命名记号法调用.命名记号法对于有大量参数的函数特别有用,因为它让参数和实际参数之间的关联更明显和可靠.在位置记号法中,书写一个函数调用时,其参数值要按照它们在函数声明中被定义的顺序书写.在命名记号法中,参数根据名称匹配函数参数,并且可以以任何顺序书写. 在任意一种记号法中,在函数声明中给出了默认值的参数根本不需要在调用中写出.但是这在命名记号法中特别有用,因为任何参

Java陷阱之assert关键字详解_java

一.概述 在C和C++语言中都有assert关键,表示断言.在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都 将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启. assert关键字语法很简单,有两种用法: 1.ass

提高关键字排名的几种最好的方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 一个内容页面做出来后, 肯定会想如何提高关键字排名,带来流量.但提高关键字排名是一个系统的工程,从开始到结尾都要注意一些细节.下面我们来谈谈如何提高关键字排名: 一.  在做关键字优化之前选择关键字是基础,如果说选择关键字做不好, 那么其它的做的再好,你的关键字排名也排不上去. 首先确定中心词, 然后用关键字工具找到自己 合适的关键字.SEO

C/C++中static,const,inline三种关键字详细总结_C 语言

一.关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因.作用谈起,全面分析static 修饰符的实质. static 的两大作用: 一.控制存储方式 static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间. 引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保