我们可以使用SQL找出哪些关键字仅对DO块或PL/pgSQL函数内部的Postgres有意义吗?如果没有,也许有人可以告诉我我的清单是否完整,或者是否有一些单词不应该包含在清单中:
继续,退出,foreach,循环,返回,返回下一个,返回查询, 切片,而别名,开始,常量,声明,异常,执行,获取 (堆叠)诊断,执行,引发,消息,详细信息,提示,错误代码, 调试,日志,信息,通知,警告,发现,sqlerrm,sqlstate,新的,旧的, tg_name,tg_when,tg_level,tg_op,tg_relid,tg_relname, tg_table_name,tg_table_schema,tg_nargs,tg_argv,tg_event,tg_tag
答案 0 :(得分:0)
您可以在src/pl/plpgsql/src/pl_scanner.c
中找到列表:
保留关键字:
ALL
BEGIN
BY
CASE
DECLARE
ELSE
END
EXECUTE
FOR
FOREACH
FROM
IF
IN
INTO
LOOP
NOT
NULL
OR
STRICT
THEN
TO
USING
WHEN
WHILE
“非保留”关键字:
ABSOLUTE
ALIAS
ARRAY
ASSERT
BACKWARD
CLOSE
COLLATE
COLUMN
COLUMN_NAME
CONSTANT
CONSTRAINT
CONSTRAINT_NAME
CONTINUE
CURRENT
CURSOR
DATATYPE
DEBUG
DEFAULT
DETAIL
DIAGNOSTICS
DUMP
ELSEIF
ELSIF
ERRCODE
ERROR
EXCEPTION
EXIT
FETCH
FIRST
FORWARD
GET
HINT
IMPORT
INFO
INSERT
IS
LAST
LOG
MESSAGE
MESSAGE_TEXT
MOVE
NEXT
NO
NOTICE
OPEN
OPTION
PERFORM
PG_CONTEXT
PG_DATATYPE_NAME
PG_EXCEPTION_CONTEXT
PG_EXCEPTION_DETAIL
PG_EXCEPTION_HINT
PRINT_STRICT_PARAMS
PRIOR
QUERY
RAISE
RELATIVE
RESULT_OID
RETURN
RETURNED_SQLSTATE
REVERSE
ROW_COUNT
ROWTYPE
SCHEMA
SCHEMA_NAME
SCROLL
SLICE
SQLSTATE
STACKED
TABLE
TABLE_NAME
TYPE
USE_COLUMN
USE_VARIABLE
VARIABLE_CONFLICT
WARNING
TG_RELID
或FOUND
之类的特殊变量不是关键字,即使它们在PL / pgSQL中起特殊作用。