- 附录:SQL语法
- ABORT
- ALTER AUDIT POLICY
- ALTER DATA SOURCE
- ALTER DATABASE
- ALTER DEFAULT PRIVILEGES
- ALTER DIRECTORY
- ALTER EVENT TRIGGER
- ALTER EXTENSION
- ALTER FOREIGN TABLE
- ALTER FUNCTION
- ALTER GROUP
- ALTER INDEX
- ALTER LARGE OBJECT
- ALTER MASKING POLICY
- ALTER MATERIALIZED VIEW
- ALTER OPERATOR
- ALTER RESOURCE LABEL
- ALTER RESOURCE POOL
- ALTER ROLE
- ALTER ROW LEVEL SECURITY POLICY
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER SERVER
- ALTER SESSION
- ALTER SYNONYM
- ALTER SYSTEM KILL SESSION
- ALTER SYSTEM SET
- ALTER TABLE
- ALTER TABLE PARTITION
- ALTER TABLESPACE
- ALTER TEXT SEARCH CONFIGURATION
- ALTER TEXT SEARCH DICTIONARY
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ALTER VIEW
- ANALYSE|ANALYZE
- ANONYMOUS BLOCK
- BEGIN
- CALL
- CHECKPOINT
- CLEAN CONNECTION
- CLOSE
- CLUSTER
- COMMENT
- COMMIT
- COMMIT PREPARED
- COPY
- CREATE AUDIT POLICY
- CREATE CLIENT MASTER KEY
- CREATE COLUMN ENCRYPTION KEY
- CREATE DATA SOURCE
- CREATE DATABASE
- CREATE DIRECTORY
- CREATE EVENT TRIGGER
- CREATE EXTENSION
- CREATE FOREIGN TABLE
- CREATE FUNCTION
- CREATE GROUP
- CREATE INDEX
- CREATE LANGUAGE
- CREATE MASKING POLICY
- CREATE MATERIALIZED VIEW
- CREATE MODEL
- CREATE OPERATOR
- CREATE PACKAGE
- CREATE PROCEDURE
附录:SQL语法
ABORT
退出当前事务。
1. ABORT [ WORK | TRANSACTION ] ;
ALTER AUDIT POLICY
修改统一审计策略。
1. ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] };
2. ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause );
3. ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER;
4. ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments;
5. ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE };
7. where privilege_audit_clause can be:
8. PRIVILEGES { DDL | ALL }
10. where access_audit_clause can be:
11. ACCESS { DML | ALL }
13. where filter_group_clause can be:
14. FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
16. where DDL can be:
17. { ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
19. where DML can be:
20. { ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | REPARE | SELECT | TRUNCATE | UPDATE ) }
ALTER DATA SOURCE
修改Data Source对象的属性和内容。
1. ALTER DATA SOURCE src_name
2. [TYPE 'type_str']
3. [VERSION {'version_str' | NULL}]
4. [OPTIONS ( { [ADD | SET | DROP] optname ['optvalue'] } [, ...] )];
5. ALTER DATA SOURCE src_name RENAME TO src_new_name;
6. ALTER DATA SOURCE src_name OWNER TO new_owner;
8. Valid optname are:
9. DSN, USERNAME, PASSWORD, ENCODING
ALTER DATABASE
修改数据库的属性,包括它的名称、所有者、连接数限制、对象隔离属性等。
1. ALTER DATABASE database_name
2. [ [ WITH ] CONNECTION LIMIT connlimit ];
3. ALTER DATABASE database_name
4. RENAME TO new_name;
5. ALTER DATABASE database_name
6. OWNER TO new_owner;
7. ALTER DATABASE database_name
8. SET TABLESPACE new_tablespace;
9. ALTER DATABASE database_name
10. SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };
11. ALTER DATABASE database_name
12. RESET { configuration_parameter | ALL };
13. ALTER DATABASE database_name
14. [ WITH ] { ENABLE | DISABLE } PRIVATE OBJECT;
ALTER DEFAULT PRIVILEGES
设置应用于将来创建的对象的权限(这不会影响分配到已有对象中的权限)。
1. ALTER DEFAULT PRIVILEGES
2. [ FOR { ROLE | USER } target_role [, ...] ]
3. [ IN SCHEMA schema_name [, ...] ]
4. abbreviated_grant_or_revoke;
6. where abbreviated_grant_or_revoke can be:
7. grant_on_tables_clause
8. | grant_on_sequences_clause
9. | grant_on_functions_clause
10. | grant_on_types_clause
11. | grant_on_client_master_keys_clause
12. | grant_on_column_encryption_keys_clause
13. | revoke_on_tables_clause
14. | revoke_on_sequences_clause
15. | revoke_on_functions_clause
16. | revoke_on_types_clause
17. | revoke_on_client_master_keys_clause
18. | revoke_on_column_encryption_keys_clause
19. where grant_on_tables_clause can be:
20. GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
21. ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
22. ON TABLES
23. TO { [ GROUP ] role_name | PUBLIC } [, ...]
24. [ WITH GRANT OPTION ]
25. where grant_on_sequences_clause can be:
26. GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
27. [, ...] | ALL [ PRIVILEGES ] }
28. ON SEQUENCES
29. TO { [ GROUP ] role_name | PUBLIC } [, ...]
30. [ WITH GRANT OPTION ]
31. where grant_on_functions_clause can be:
32. GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
33. ON FUNCTIONS
34. TO { [ GROUP ] role_name | PUBLIC } [, ...]
35. [ WITH GRANT OPTION ]
36. where grant_on_types_clause can be:
37. GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
38. ON TYPES
39. TO { [ GROUP ] role_name | PUBLIC } [, ...]
40. [ WITH GRANT OPTION ]
41. where grant_on_client_master_keys_clause can be:
42. GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
43. ON CLIENT_MASTER_KEYS
44. TO { [ GROUP ] role_name | PUBLIC } [, ...]
45. [ WITH GRANT OPTION ]
46. where grant_on_column_encryption_keys_clause can be:
47. GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
48. ON COLUMN_ENCRYPTION_KEYS
49. TO { [ GROUP ] role_name | PUBLIC } [, ...]
50. [ WITH GRANT OPTION ]
51. where revoke_on_tables_clause can be:
52. REVOKE [ GRANT OPTION FOR ]
53. { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES |
54. ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }
55. ON TABLES
56. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
57. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
58. where revoke_on_sequences_clause can be:
59. REVOKE [ GRANT OPTION FOR ]
60. { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
61. [, ...] | ALL [ PRIVILEGES ] }
62. ON SEQUENCES
63. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
64. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
65. where revoke_on_functions_clause can be:
66. REVOKE [ GRANT OPTION FOR ]
67. { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
68. ON FUNCTIONS
69. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
70. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
71. where revoke_on_types_clause can be:
72. REVOKE [ GRANT OPTION FOR ]
73. { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
74. ON TYPES
75. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
76. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
77. where revoke_on_client_master_keys_clause can be:
78. REVOKE [ GRANT OPTION FOR ]
79. { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
80. ON CLIENT_MASTER_KEYS
81. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
82. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
83. where revoke_on_column_encryption_keys_clause can be:
84. REVOKE [ GRANT OPTION FOR ]
85. { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
86. ON COLUMN_ENCRYPTION_KEYS
87. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
88. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
ALTER DIRECTORY
对directory属性进行修改。
1. CREATE [OR REPLACE] DIRECTORY directory_name
2. AS 'path_name';
ALTER EVENT TRIGGER
修改事件触发器。
1. ALTER EVENT TRIGGER name DISABLE
2. ALTER EVENT TRIGGER name ENABLE [ REPLICA | ALWAYS ]
3. ALTER EVENT TRIGGER name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
4. ALTER EVENT TRIGGER name RENAME TO new_name
ALTER EXTENSION
修改插件扩展。
1. ALTER EXTENSION name UPDATE [ TO new_version ];
2. ALTER EXTENSION name SET SCHEMA new_schema;
3. ALTER EXTENSION name ADD member_object;
4. ALTER EXTENSION name DROP member_object;
6. where member_object is:
8. FOREIGN TABLE object_name |
9. FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
10. [ PROCEDURAL ] LANGUAGE object_name |
11. SCHEMA object_name |
12. SERVER object_name |
13. TABLE object_name |
14. TEXT SEARCH CONFIGURATION object_name |
15. TYPE object_name |
16. VIEW object_name
ALTER FOREIGN TABLE
对外表进行修改。
1. 1. GDS:
2. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
3. OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
4. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
5. OWNER TO new_owner;
7. 2. HDFS:
8. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
9. OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
10. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
11. OWNER TO new_owner;
12. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
13. MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
14. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
15. ADD [CONSTRAINT constraint_name]
16. {PRIMARY KEY | UNIQUE} (column_name)
17. [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
18. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
19. DROP CONSTRAINT constraint_name ;
20. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
21. action [, ... ];
23. where action can be:
24. ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
25. | ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
26. | ALTER [ COLUMN ] column_name SET STATISTICS integer
27. | ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
28. | MODIFY column_name data_type
29. | MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
30. | MODIFY column_name [ CONSTRAINT constraint_name ] NULL
32. 3. OBS:
33. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
34. OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ]);
35. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
36. OWNER TO new_owner;
37. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
38. MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
39. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
40. ADD [CONSTRAINT constraint_name]
41. {PRIMARY KEY | UNIQUE} (column_name)
42. [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED];
43. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
44. DROP CONSTRAINT constraint_name ;
45. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
46. action [, ... ];
48. where action can be:
49. ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
50. | ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
51. | ALTER [ COLUMN ] column_name SET STATISTICS integer
52. | ALTER [ COLUMN ] column_name OPTIONS ( {[ ADD | SET | DROP ] option ['value'] } [, ... ])
53. | MODIFY column_name data_type
54. | MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
55. | MODIFY column_name [ CONSTRAINT constraint_name ] NULL
57. 4. GC:
58. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
59. OPTIONS ( {[ SET ] option ['value']} [, ... ]);
60. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
61. OWNER TO new_owner;
62. ALTER FOREIGN TABLE [ IF EXISTS ] table_name
63. MODIFY ( { column_name data_type [, ...] );
64. ALTER FOREIGN TABLE [ IF EXISTS ] tablename
65. action [, ... ];
67. where action can be:
68. ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type
69. | MODIFY column_name data_type
ALTER FUNCTION
修改自定义函数的属性。
1. ALTER FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
2. action [ ... ] [ RESTRICT ];
3. ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
4. RENAME TO new_name;
5. ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
6. OWNER TO new_owner;
7. ALTER FUNCTION funname ( [ {[ argmode ] [ argname ] argtype} [, ...] ] )
8. SET SCHEMA new_schema;
10. where action can be:
11. {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
12. | {IMMUTABLE | STABLE | VOLATILE}
13. | {NOT FENCED | FENCED}
14. | [ NOT ] LEAKPROOF
15. | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER}
16. | AUTHID { DEFINER | CURRENT_USER }
17. | COST execution_cost
18. | ROWS result_rows
19. | SET configuration_parameter {{ TO | = } { value | DEFAULT }| FROM CURRENT}
20. | RESET {configuration_parameter| ALL}
ALTER GROUP
修改一个用户组的属性。
1. ALTER GROUP group_name
2. ADD USER user_name [, ... ];
3. ALTER GROUP group_name
4. DROP USER user_name [, ... ];
5. ALTER GROUP group_name
6. RENAME TO new_name;
ALTER INDEX
修改现有索引的定义。
1. ALTER INDEX [ IF EXISTS ] index_name
2. RENAME TO new_name;
3. ALTER INDEX [ IF EXISTS ] index_name
4. SET TABLESPACE tablespace_name;
5. ALTER INDEX [ IF EXISTS ] index_name
6. SET ( {storage_parameter = value} [, ... ] );
7. ALTER INDEX [ IF EXISTS ] index_name
8. RESET ( storage_parameter [, ... ] ) ;
9. ALTER INDEX [ IF EXISTS ] index_name
10. [ MODIFY PARTITION partition_name ] UNUSABLE;
11. ALTER INDEX index_name
12. REBUILD [ PARTITION partition_name ];
13. ALTER INDEX [ IF EXISTS ] index_name
14. RENAME PARTITION partition_name TO new_partition_name;
15. ALTER INDEX [ IF EXISTS ] index_name
16. MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
ALTER LARGE OBJECT
用于更改一个large object的定义。它的唯一的功能是分配一个新的所有者。
1. ALTER LARGE OBJECT large_object_oid
2. OWNER TO new_owner;
ALTER MASKING POLICY
修改脱敏策略。
1. ALTER MASKING POLICY policy_name { ADD | REMOVE | MODIFY } masking_actions [, ... ];
2. ALTER MASKING POLICY policy_name MODIFY ( filter_group_clause );
3. ALTER MASKING POLICY policy_name DROP FILTER;
4. ALTER MASKING POLICY policy_name { ENABLE | DISABLE };
6. where masking_actions can be:
7. masking_function ON LABEL(label_name [, ... ])
9. where masking_function can be:
10. { maskall | randommasking | creditcardmasking | basicemailmasking | fullemailmasking | shufflemasking | alldigitsmasking | regexpmasking }
12. where filter_group_clause can be:
13. FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
ALTER MATERIALIZED VIEW
更改一个现有物化视图的多个辅助属性。
1. ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
2. OWNER TO new_owner;
3. ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
4. RENAME [COLUMN] column_name to new_column_name;
5. ALTER MATERIALIZED VIEW [ IF EXISTS ] mv_name
6. RENAME TO new_name;
ALTER OPERATOR
修改一个操作符的定义。
1. ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) OWNER TO new_owner
2. ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) SET SCHEMA new_schema
ALTER RESOURCE LABEL
修改资源标签。
1. ALTER RESOURCE LABEL label_name { ADD | REMOVE } label_item_list [, ... ];
3. where label_item_list can be:
4. resource_type(resource_path[, ... ])
6. where resource_type can be:
7. { TABLE | COLUMN | SCHEMA | VIEW | FUNCTION }
ALTER RESOURCE POOL
修改一个资源池,指定其他控制组。
1. ALTER RESOURCE POOL pool_name
2. WITH ({MEM_PERCENT=pct | CONTROL_GROUP="group_name" | ACTIVE_STATEMENTS=stmt | MAX_DOP = dop | MEMORY_LIMIT='memory_size' | io_limits=io_limits | io_priority='priority' | nodegroup='nodegroup_name' }[, ... ]);
ALTER ROLE
修改角色属性。
1. ALTER ROLE role_name [ [ WITH ] option [ ... ] ];
2. ALTER ROLE role_name
3. RENAME TO new_name;
4. ALTER ROLE role_name [ IN DATABASE database_name ]
5. SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
6. ALTER ROLE role_name
7. [ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
9. where option can be:
10. {CREATEDB | NOCREATEDB}
11. | {CREATEROLE | NOCREATEROLE}
12. | {INHERIT | NOINHERIT}
13. | {AUDITADMIN | NOAUDITADMIN}
14. | {SYSADMIN | NOSYSADMIN}
15. | {MONADMIN | NOMONADMIN}
16. | {OPRADMIN | NOOPRADMIN}
17. | {POLADMIN | NOPOLADMIN}
18. | {USEFT | NOUSEFT}
19. | {LOGIN | NOLOGIN}
20. | {REPLICATION | NOREPLICATION}
21. | {INDEPENDENT | NOINDEPENDENT}
22. | {VCADMIN | NOVCADMIN}
23. | {PERSISTENCE | NOPERSISTENCE}
24. | CONNECTION LIMIT connlimit
25. | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
26. | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
27. | VALID BEGIN 'timestamp'
28. | VALID UNTIL 'timestamp'
29. | RESOURCE POOL 'respool'
30. | USER GROUP 'groupuser'
31. | PERM SPACE 'spacelimit'
32. | TEMP SPACE 'tmpspacelimit'
33. | SPILL SPACE 'spillspacelimit'
34. | NODE GROUP logic_cluster_name
35. | ACCOUNT { LOCK | UNLOCK }
36. | PGUSER
ALTER ROW LEVEL SECURITY POLICY
对已存在的行访问控制策略(包括行访问控制策略的名称,行访问控制指定的用户,行访问控制的策略表达式)进行修改。
1. ALTER [ ROW LEVEL SECURITY ] POLICY [ IF EXISTS ] policy_name ON table_name RENAME TO new_policy_name
3. ALTER [ ROW LEVEL SECURITY ] POLICY policy_name ON table_name
4. [ TO { role_name | PUBLIC } [, ...] ]
5. [ USING ( using_expression ) ]
ALTER SCHEMA
修改模式属性。
1. ALTER SCHEMA schema_name
2. RENAME TO new_name;
3. ALTER SCHEMA schema_name
4. OWNER TO new_owner;
5. ALTER SCHEMA schema_name {WITH | WITHOUT} BLOCKCHAIN;
ALTER SEQUENCE
修改一个现有的序列的参数。
1. ALTER SEQUENCE [ IF EXISTS ] name
2. [ MAXVALUE maxvalue | NO MAXVALUE | NOMAXVALUE ]
3. [ OWNED BY { table_name.column_name | NONE } ];
4. ALTER SEQUENCE [ IF EXISTS ] name OWNER TO new_owner;
ALTER SERVER
增加、修改和删除一个现有server的参数。已有server可以从pg_foreign_server系统表中查询。
1. ALTER SERVER server_name [ VERSION 'new_version' ]
2. [ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ];
3. ALTER SERVER server_name
4. OWNER TO new_owner;
5. ALTER SERVER server_name
6. RENAME TO new_name;
ALTER SESSION
ALTER SESSION命令用于定义或修改那些对当前会话有影响的条件或参数。修改后的会话参数会一直保持,直到断开当前会话。
1. ALTER SESSION SET
2. {{config_parameter { { TO | = } { value | DEFAULT }
3. | FROM CURRENT }} | CURRENT_SCHEMA [ TO | = ] { schema | DEFAULT }
4. | TIME ZONE time_zone
5. | SCHEMA schema
6. | NAMES encoding_name
7. | ROLE role_name PASSWORD 'password'
8. | SESSION AUTHORIZATION { role_name PASSWORD 'password' | DEFAULT }
9. | XML OPTION { DOCUMENT | CONTENT }
10. } ;
11. ALTER SESSION SET [ SESSION CHARACTERISTICS AS ] TRANSACTION
12. { ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED } | { READ ONLY | READ WRITE } } [, ...] ;
ALTER SYNONYM
修改SYNONYM对象的属性。
1. ALTER SYNONYM synonym_name
2. OWNER TO new_owner;
ALTER SYSTEM KILL SESSION
用于结束一个会话。
1. ALTER SYSTEM KILL SESSION 'session_sid, serial' [ IMMEDIATE ];
ALTER SYSTEM SET
用于设置POSTMASTER、SIGHUP、BACKEND级别的GUC参数。此命令会将参数写入配置文件,不同级别生效方式有所不同。
1. ALTER SYSTEM SET { GUC_name } TO { GUC_value };
ALTER TABLE
修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。
1. ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
2. action [, ... ];
3. ALTER TABLE [ IF EXISTS ] table_name
4. ADD ( { column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]} [, ...] );
5. ALTER TABLE [ IF EXISTS ] table_name
6. MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
7. ALTER TABLE [ IF EXISTS ] table_name
8. RENAME TO new_table_name;
9. ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
10. RENAME [ COLUMN ] column_name TO new_column_name;
11. ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
12. RENAME CONSTRAINT constraint_name TO new_constraint_name;
13. ALTER TABLE [ IF EXISTS ] table_name
14. SET SCHEMA new_schema;
16. where action can be:
17. column_clause
18. | ADD table_constraint [ NOT VALID ]
19. | ADD table_constraint_using_index
20. | VALIDATE CONSTRAINT constraint_name
21. | DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
22. | CLUSTER ON index_name
23. | SET WITHOUT CLUSTER
24. | SET ( {storage_parameter = value} [, ... ] )
25. | RESET ( storage_parameter [, ... ] )
26. | OWNER TO new_owner
27. | SET TABLESPACE new_tablespace
28. | SET {COMPRESS|NOCOMPRESS}
29. | TO { GROUP groupname | NODE ( nodename [, ... ] ) }
30. | ADD NODE ( nodename [, ... ] )
31. | DELETE NODE ( nodename [, ... ] )
32. | UPDATE SLICE LIKE table_name
33. | DISABLE TRIGGER [ trigger_name | ALL | USER ]
34. | ENABLE TRIGGER [ trigger_name | ALL | USER ]
35. | ENABLE REPLICA TRIGGER trigger_name
36. | ENABLE ALWAYS TRIGGER trigger_name
37. | ENABLE ROW LEVEL SECURITY
38. | DISABLE ROW LEVEL SECURITY
39. | FORCE ROW LEVEL SECURITY
40. | NO FORCE ROW LEVEL SECURITY
41. | ENCRYPTION KEY ROTATION
42. where column_clause can be:
43. ADD [ COLUMN ] column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ]
44. | MODIFY column_name data_type
45. | MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ]
46. | MODIFY column_name [ CONSTRAINT constraint_name ] NULL
47. | DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]
48. | ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
49. | ALTER [ COLUMN ] column_name { SET DEFAULT expression | DROP DEFAULT }
50. | ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
51. | ALTER [ COLUMN ] column_name SET STATISTICS [PERCENT] integer
52. | ADD STATISTICS (( column_1_name, column_2_name [, ...] ))
53. | DELETE STATISTICS (( column_1_name, column_2_name [, ...] ))
54. | ALTER [ COLUMN ] column_name SET ( {attribute_option = value} [, ... ] )
55. | ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
56. | ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
57. where column_constraint can be:
58. [ CONSTRAINT constraint_name ]
59. { NOT NULL |
60. NULL |
61. CHECK ( expression ) |
62. DEFAULT default_expr |
63. GENERATED ALWAYS AS ( generation_expr ) STORED |
64. UNIQUE index_parameters |
65. PRIMARY KEY index_parameters |
66. ENCRYPTED WITH ( COLUMN_ENCRYPTION_KEY = column_encryption_key, ENCRYPTION_TYPE = encryption_type_value ) |
67. REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
68. [ ON DELETE action ] [ ON UPDATE action ] }
69. [ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
70. where compress_mode can be:
71. { DELTA | PREFIX | DICTIONARY | NUMSTR | NOCOMPRESS }
72. where table_constraint can be:
73. [ CONSTRAINT constraint_name ]
74. { CHECK ( expression ) |
75. UNIQUE ( column_name [, ... ] ) index_parameters |
76. PRIMARY KEY ( column_name [, ... ] ) index_parameters |
77. PARTIAL CLUSTER KEY ( column_name [, ... ] ) |
78. FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
79. [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
80. [ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
81. where index_parameters can be:
82. [ WITH ( {storage_parameter = value} [, ... ] ) ]
83. [ USING INDEX TABLESPACE tablespace_name ]
84. where table_constraint_using_index can be:
85. [ CONSTRAINT constraint_name ]
86. { UNIQUE | PRIMARY KEY } USING INDEX index_name
87. [ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
ALTER TABLE PARTITION
1. ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
2. action [, ... ];
3. ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )}
4. RENAME PARTITION { partion_name | FOR ( partition_value [, ...] ) } TO partition_new_name;
6. where action can be:
7. move_clause |
8. exchange_clause |
9. row_clause |
10. merge_clause |
11. modify_clause |
12. split_clause |
13. add_clause |
14. drop_clause
15. where move_clause can be:
16. MOVE PARTITION { partion_name | FOR ( partition_value [, ...] ) } TABLESPACE tablespacename
17. where exchange_clause can be:
18. EXCHANGE PARTITION { ( partition_name ) | FOR ( partition_value [, ...] ) }
19. WITH TABLE {[ ONLY ] ordinary_table_name | ordinary_table_name * | ONLY ( ordinary_table_name )}
20. [ { WITH | WITHOUT } VALIDATION ] [ VERBOSE ]
21. where row_clause can be:
22. { ENABLE | DISABLE } ROW MOVEMENT
23. where merge_clause can be:
24. MERGE PARTITIONS { partition_name } [, ...] INTO PARTITION partition_name
25. [ TABLESPACE tablespacename ]
26. where modify_clause can be:
27. MODIFY PARTITION partition_name { UNUSABLE LOCAL INDEXES | REBUILD UNUSABLE LOCAL INDEXES }
28. where split_clause can be:
29. SPLIT PARTITION { partition_name | FOR ( partition_value [, ...] ) } { split_point_clause | no_split_point_clause }
30. where split_point_clause can be:
31. AT ( partition_value ) INTO ( PARTITION partition_name [ TABLESPACE tablespacename ] , PARTITION partition_name [ TABLESPACE tablespacename ] )
32. where no_split_point_clause can be:
33. INTO {(partition_less_than_item [, ...] ) | (partition_start_end_item [, ...] )}
34. where add_clause can be:
35. ADD {partition_less_than_item | partition_start_end_item}
36. where partition_less_than_item can be:
37. PARTITION partition_name VALUES LESS THAN ( { partition_value | MAXVALUE } [, ...] ) [ TABLESPACE tablespacename ]
38. where partition_start_end_item can be:
39. PARTITION partition_name {
40. {START(partition_value) END (partition_value) EVERY (interval_value)} |
41. {START(partition_value) END ({partition_value | MAXVALUE})} |
42. {START(partition_value)} |
43. {END({partition_value | MAXVALUE})}
44. } [TABLESPACE tablespace_name]
45. where drop_clause can be:
46. DROP PARTITION { partition_name | FOR ( partition_value [, ...] ) }
ALTER TABLESPACE
修改表空间的属性。
1. ALTER TABLESPACE tablespace_name
2. RENAME TO new_tablespace_name;
3. ALTER TABLESPACE tablespace_name
4. OWNER TO new_owner;
5. ALTER TABLESPACE tablespace_name
6. SET ( {tablespace_option = value} [, ... ] );
7. ALTER TABLESPACE tablespace_name
8. RESET ( tablespace_option [, ... ] );
9. ALTER TABLESPACE tablespace_name
10. RESIZE MAXSIZE { UNLIMITED | 'space_size' };
ALTER TEXT SEARCH CONFIGURATION
更改文本搜索配置的定义。用户可以将映射从字串类型调整为字典,或者改变配置的名称或者所有者,或者修改搜索配置的配置参数。
1. ALTER TEXT SEARCH CONFIGURATION name
2. ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]
3. ALTER TEXT SEARCH CONFIGURATION name
4. ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]
5. ALTER TEXT SEARCH CONFIGURATION name
6. ALTER MAPPING REPLACE old_dictionary WITH new_dictionary
7. ALTER TEXT SEARCH CONFIGURATION name
8. ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary
9. ALTER TEXT SEARCH CONFIGURATION name
10. DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ]
11. ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name
12. ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner
13. ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema
14. ALTER TEXT SEARCH CONFIGURATION name SET ( {configuration_option = value} [, ...] )
15. ALTER TEXT SEARCH CONFIGURATION name RESET ( {configuration_option} [, ...] )
ALTER TEXT SEARCH DICTIONARY
修改全文检索词典的相关定义,包括参数、名称、所有者、以及模式等。
1. ALTER TEXT SEARCH DICTIONARY name ( option = value | option [, ...] );
2. ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name;
3. ALTER TEXT SEARCH DICTIONARY name OWNER TO new_owner;
4. ALTER TEXT SEARCH DICTIONARY name SET SCHEMA new_schema
ALTER TRIGGER
修改触发器名称。
1. ALTER TRIGGER name ON table_name RENAME TO new_name
ALTER TYPE
修改一个类型的定义。
1. ALTER TYPE name action [, ... ]
2. ALTER TYPE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
3. ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
4. ALTER TYPE name RENAME TO new_name
5. ALTER TYPE name SET SCHEMA new_schema
6. ALTER TYPE name ADD VALUE [ IF NOT EXISTS ] new_enum_value [ { BEFORE | AFTER } neighbor_enum_value ]
7. ALTER TYPE name RENAME VALUE existing_enum_value TO new_enum_value
9. where action is one of:
11. ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
12. DROP ATTRIBUTE [ IF EXISTS ] attribute_name [ CASCADE | RESTRICT ]
13. ALTER ATTRIBUTE attribute_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
ALTER USER
修改数据库用户的属性。
1. ALTER USER user_name [ [ WITH ] option [ ... ] ];
2. ALTER USER user_name
3. RENAME TO new_name;
4. ALTER USER user_name [ IN DATABASE database_name ]
5. SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT};
6. ALTER USER user_name
7. [ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
9. where option can be:
10. {CREATEDB | NOCREATEDB}
11. | {CREATEROLE | NOCREATEROLE}
12. | {INHERIT | NOINHERIT}
13. | {AUDITADMIN | NOAUDITADMIN}
14. | {SYSADMIN | NOSYSADMIN}
15. | {MONADMIN | NOMONADMIN}
16. | {OPRADMIN | NOOPRADMIN}
17. | {POLADMIN | NOPOLADMIN}
18. | {USEFT | NOUSEFT}
19. | {LOGIN | NOLOGIN}
20. | {REPLICATION | NOREPLICATION}
21. | {INDEPENDENT | NOINDEPENDENT}
22. | {VCADMIN | NOVCADMIN}
23. | {PERSISTENCE | NOPERSISTENCE}
24. | CONNECTION LIMIT connlimit
25. | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [ EXPIRED ] | DISABLE | EXPIRED }
26. | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
27. | VALID BEGIN 'timestamp'
28. | VALID UNTIL 'timestamp'
29. | RESOURCE POOL 'respool'
30. | USER GROUP 'groupuser'
31. | PERM SPACE 'spacelimit'
32. | TEMP SPACE 'tmpspacelimit'
33. | SPILL SPACE 'spillspacelimit'
34. | NODE GROUP logic_cluster_name
35. | ACCOUNT { LOCK | UNLOCK }
36. | PGUSER
ALTER VIEW
更改视图的各种辅助属性。
1. ALTER VIEW [ IF EXISTS ] view_name
2. ALTER [ COLUMN ] column_name SET DEFAULT expression;
3. ALTER VIEW [ IF EXISTS ] view_name
4. ALTER [ COLUMN ] column_name DROP DEFAULT;
5. ALTER VIEW [ IF EXISTS ] view_name
6. OWNER TO new_owner;
7. ALTER VIEW [ IF EXISTS ] view_name
8. RENAME TO new_name;
9. ALTER VIEW [ IF EXISTS ] view_name
10. SET SCHEMA new_schema;
11. ALTER VIEW [ IF EXISTS ] view_name
12. SET ( {view_option_name [= view_option_value]} [, ... ] );
13. ALTER VIEW [ IF EXISTS ] view_name
14. RESET ( view_option_name [, ... ] );
ANALYSE|ANALYZE
用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC下。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。
1. {ANALYZE | ANALYSE} [ VERBOSE ]
2. [ table_name [ ( column_name [, ...] ) ] ];
3. {ANALYZE | ANALYSE} [ VERBOSE ]
4. [ table_name [ ( column_name [, ...] ) ] ]
5. PARTITION patrition_name;
6. {ANALYZE | ANALYSE} [ VERBOSE ]
7. { foreign_table_name | FOREIGN TABLES };
8. {ANALYZE | ANALYSE} [ VERBOSE ]
9. table_name (( column_1_name, column_2_name [, ...] ));
10. {ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE};
11. {ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
12. table_name|index_name [CASCADE];
13. {ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}
14. table_name PARTITION (patrition_name) [CASCADE];
ANONYMOUS BLOCK
匿名块(Anonymous Block)一般用于不频繁执行的脚本或不重复进行的活动。它们在一个会话中执行,并不被存储。
1. [DECLARE [declare_statements]]
2. BEGIN
3. execution_staements
4. END;
5. /
BEGIN
BEGIN可以用于开始一个匿名块,也可以用于开始一个事务。
1. start a anonymous block:
2. [DECLARE [declare_statements]]
3. BEGIN
4. execution_statements
5. END;
6. /
8. start a transaction:
9. BEGIN [ WORK | TRANSACTION ]
10. [
11. {
12. ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ }
13. | { READ WRITE | READ ONLY }
14. } [, ...]
15. ];
CALL
可以调用已定义的函数和存储过程。
1. CALL [schema.] func_name ( param_expr );
CHECKPOINT
检查点(CHECKPOINT)是一个事务日志中的点,所有数据文件都在该点被更新以反映日志中的信息,所有数据文件都将被刷新到磁盘。
1. CHECKPOINT
CLEAN CONNECTION
用来清理数据库连接。允许在节点上清理指定数据库的指定用户的相关连接。
1. CLEAN CONNECTION
2. TO { COORDINATOR ( nodename [, ... ] ) | NODE ( nodename [, ... ] ) | ALL [ CHECK ] [ FORCE ] }
3. [ FOR DATABASE dbname ]
4. [ TO USER username ];
CLOSE
释放和一个游标关联的所有资源。
1. CLOSE { cursor_name | ALL };
CLUSTER
根据一个索引对表进行聚簇排序。
1. CLUSTER [ VERBOSE ] table_name [ USING index_name ];
2. CLUSTER [ VERBOSE ] table_name PARTITION ( partition_name ) [ USING index_name ];
3. CLUSTER [ VERBOSE ];
COMMENT
定义或修改一个对象的注释。
1. COMMENT ON
2. {
3. AGGREGATE agg_name (agg_type [, ...] ) |
4. CAST (source_type AS target_type) |
5. COLLATION object_name |
6. COLUMN { table_name.column_name | view_name.column_name } |
7. CONSTRAINT constraint_name ON table_name |
8. CONVERSION object_name |
9. DATABASE object_name |
10. DOMAIN object_name |
11. EXTENSION object_name |
12. FOREIGN DATA WRAPPER object_name |
13. FOREIGN TABLE object_name |
14. FUNCTION function_name ( [ {[ argmode ] [ argname ] argtype} [, ...] ] ) |
15. INDEX object_name |
16. LARGE OBJECT large_object_oid |
17. OPERATOR operator_name (left_type, right_type) |
18. OPERATOR CLASS object_name USING index_method |
19. OPERATOR FAMILY object_name USING index_method |
20. [ PROCEDURAL ] LANGUAGE object_name |
21. ROLE object_name |
22. RULE rule_name ON table_name |
23. SCHEMA object_name |
24. SERVER object_name |
25. TABLE object_name |
26. TABLESPACE object_name |
27. TEXT SEARCH CONFIGURATION object_name |
28. TEXT SEARCH DICTIONARY object_name |
29. TEXT SEARCH PARSER object_name |
30. TEXT SEARCH TEMPLATE object_name |
31. TYPE object_name |
32. VIEW object_name
33. }
34. IS 'text';
COMMIT
通过COMMIT或者END可完成提交事务的功能,即提交事务的所有操作。
1. { COMMIT | END } [ WORK | TRANSACTION ];
COMMIT PREPARED
提交一个早先为两阶段提交准备好的事务。
1. COMMIT PREPARED transaction_id;
COPY
通过COPY命令实现在表和文件之间拷贝数据。
1. COPY table_name [ ( column_name [, ...] ) ]
2. FROM { 'filename' | STDIN }
3. [ [ USING ] DELIMITERS 'delimiters' ]
4. [ WITHOUT ESCAPING ]
5. [ LOG ERRORS ]
6. [ LOG ERRORS DATA ]
7. [ REJECT LIMIT 'limit' ]
8. [ [ WITH ] ( option [, ...] ) ]
9. | copy_option
10. | [ FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) ]
11. | [ TRANSFORM ( { column_name [ data_type ] [ AS transform_expr ] } [, ...] ) ];
12. COPY table_name [ ( column_name [, ...] ) ]
13. TO { 'filename' | STDOUT }
14. [ [ USING ] DELIMITERS 'delimiters' ]
15. [ WITHOUT ESCAPING ]
16. [ [ WITH ] ( option [, ...] ) ]
17. | copy_option
18. | [ FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) ];
19. COPY query
20. TO { 'filename' | STDOUT }
21. [ WITHOUT ESCAPING ]
22. [ [ WITH ] ( option [, ...] ) ]
23. | copy_option
24. | [ FIXED FORMATTER ( { column_name( offset, length ) } [, ...] ) ];
26. where option can be:
27. FORMAT 'format_name'
28. | OIDS [ boolean ]
29. | DELIMITER 'delimiter_character'
30. | NULL 'null_string'
31. | HEADER [ boolean ]
32. | FILEHEADER 'header_file_string'
33. | FREEZE [ boolean ]
34. | QUOTE 'quote_character'
35. | ESCAPE 'escape_character'
36. | EOL 'newline_character'
37. | NOESCAPING [ boolean ]
38. | FORCE_QUOTE { ( column_name [, ...] ) | * }
39. | FORCE_NOT_NULL ( column_name [, ...] )
40. | FORCE_NULL ( column_name [, ...] )
41. | ENCODING 'encoding_name'
42. | IGNORE_EXTRA_DATA [ boolean ]
43. | FILL_MISSING_FIELDS [ boolean ]
44. | COMPATIBLE_ILLEGAL_CHARS [ boolean ]
45. | DATE_FORMAT 'date_format_string'
46. | TIME_FORMAT 'time_format_string'
47. | TIMESTAMP_FORMAT 'timestamp_format_string'
48. | SMALLDATETIME_FORMAT 'smalldatetime_format_string'
50. and copy_option can be:
51. OIDS
52. | NULL 'null_string'
53. | HEADER
54. | FILEHEADER 'header_file_string'
55. | FREEZE
56. | FORCE NOT NULL column_name [, ...]
57. | FORCE NULL column_name [, ...]
58. | FORCE QUOTE { column_name [, ...] | * }
59. | BINARY
60. | CSV
61. | QUOTE [ AS ] 'quote_character'
62. | ESCAPE [ AS ] 'escape_character'
63. | EOL 'newline_character'
64. | ENCODING 'encoding_name'
65. | IGNORE_EXTRA_DATA
66. | FILL_MISSING_FIELDS
67. | COMPATIBLE_ILLEGAL_CHARS
68. | DATE_FORMAT 'date_format_string'
69. | TIME_FORMAT 'time_format_string'
70. | TIMESTAMP_FORMAT 'timestamp_format_string'
71. | SMALLDATETIME_FORMAT 'smalldatetime_format_string'
CREATE AUDIT POLICY
创建统一审计策略。
1. CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [ filter_group_clause ] [ ENABLED | DISABLED ] };
3. where privilege_audit_clause can be:
4. PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
6. where access_audit_clause can be:
7. ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
9. where filter_group_clause can be:
10. FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
12. where DDL can be:
13. { ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) }
15. where DML can be:
16. { ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | REPARE | SELECT | TRUNCATE | UPDATE ) }
18. where FILTER_TYPE can be:
19. { APP | ROLES | IP }
CREATE CLIENT MASTER KEY
创建一个客户端主密钥对象,该对象可用于加密Column Encryption Key对象。
1. CREATE CLIENT MASTER KEY client_master_key_name
2. [WITH] ( ['KEY_STORE' , 'KEY_PATH' , 'ALGORITHM'] );
CREATE COLUMN ENCRYPTION KEY
创建一个列加密密钥,该密钥可用于加密表中指定列。
1. CREATE COLUMN ENCRYPTION KEY column_encryption_key_name
2. [WITH] [VALUES] ( ['CLIENT_MASTER_KEY' , 'ALGORITHM'] );
CREATE DATA SOURCE
创建一个新的外部数据源对象,该对象用于定义openGauss要连接的目标库信息。
1. CREATE DATA SOURCE src_name
2. [TYPE 'type_str']
3. [VERSION {'version_str' | NULL}]
4. [OPTIONS (optname 'optvalue' [, ...])];
6. Valid optname are:
7. DSN, USERNAME, PASSWORD, ENCODING
CREATE DATABASE
创建一个新的数据库。缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。
1. CREATE DATABASE database_name
2. [ [ WITH ] {[ OWNER [=] user_name ]|
3. [ TEMPLATE [=] template ]|
4. [ ENCODING [=] encoding ]|
5. [ LC_COLLATE [=] lc_collate ]|
6. [ LC_CTYPE [=] lc_ctype ]|
7. [ DBCOMPATIBILITY [=] compatibility_type ]|
8. [ TABLESPACE [=] tablespace_name ]|
9. [ CONNECTION LIMIT [=] connlimit ]}[...] ];
CREATE DIRECTORY
使用CREATE DIRECTORY语句创建一个目录对象,该目录对象定义了服务器文件系统上目录的别名,用于存放用户使用的数据文件。
1. CREATE [OR REPLACE] DIRECTORY directory_name
2. AS 'path_name';
CREATE EVENT TRIGGER
创建一个事件触发器。事件触发器将与指定的事件触发器函数绑定,在特定事件触发后执行函数。
1. CREATE EVENT TRIGGER name
2. ON event
3. [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
4. EXECUTE PROCEDURE function_name()
CREATE EXTENSION
安装一个扩展。
1. CREATE EXTENSION [ IF NOT EXISTS ] extension_name
2. [ WITH ] [ SCHEMA schema_name ]
3. [ VERSION version ]
4. [ FROM old_version ];
CREATE FOREIGN TABLE
创建外表。
1. CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name
2. ( { column_name type_name POSITION(offset,length) [column_constraint ]
3. | LIKE source_table | table_constraint } [, ...] )
4. SEVER gsmpp_server
5. OPTIONS ( { option_name ' value ' } [, ...] )
6. [ { WRITE ONLY | READ ONLY }]
7. [ WITH error_table_name | LOG INTO error_table_name]
8. [REMOTE LOG 'name']
9. [PER NODE REJECT LIMIT 'value']
10. [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ];
11. CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name
12. ( { column_name type_name
13. [ { [CONSTRAINT constraint_name] NULL |
14. [CONSTRAINT constraint_name] NOT NULL |
15. column_constraint [...]} ] |
16. table_constraint} [, ...] )
17. SERVER server_name
18. OPTIONS ( { option_name ' value ' } [, ...] )
19. DISTRIBUTE BY {ROUNDROBIN | REPLICATION}
20. [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]
21. [ PARTITION BY ( column_name ) [AUTOMAPPED]] ;
22. CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name
23. ( [ { column_name type_name | LIKE source_table } [, ...] ] )
24. SERVER server_name
25. OPTIONS ( { option_name ' value ' } [, ...] )
26. [ READ ONLY ]
27. [ DISTRIBUTE BY {ROUNDROBIN} ]
28. [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ];
30. where column_constraint can be:
31. [CONSTRAINT constraint_name]
32. {PRIMARY KEY | UNIQUE}
33. [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED]
34. where table_constraint can be:
35. [CONSTRAINT constraint_name]
36. {PRIMARY KEY | UNIQUE} (column_name)
37. [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED]
CREATE FUNCTION
创建一个函数。
1. CREATE [ OR REPLACE ] FUNCTION function_name
2. ( [ { argname [ argmode ] argtype [ { DEFAULT | := | = } expression ]} [, ...] ] )
3. [ RETURNS rettype [ DETERMINISTIC ]
4. | RETURNS TABLE ( { column_name column_type } [, ...] )]
5. LANGUAGE lang_name
6. [
7. {IMMUTABLE | STABLE | VOLATILE}
8. | {SHIPPABLE | NOT SHIPPABLE}
9. | [ NOT ] LEAKPROOF
10. | WINDOW
11. | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
12. | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | AUTHID DEFINER | AUTHID CURRENT_USER}
13. | {FENCED | NOT FENCED}
14. | {PACKAGE}
15. | COST execution_cost
16. | ROWS result_rows
17. | SET configuration_parameter { {TO | =} value | FROM CURRENT }
18. ] [...]
19. {
20. AS 'definition'
21. | AS 'obj_file', 'link_symbol'
22. }
24. CREATE [ OR REPLACE ] FUNCTION function_name
25. ( [ { argname [ argmode ] argtype [ { DEFAULT | := | = } expression ] } [, ...] ] )
26. RETURN rettype [ DETERMINISTIC ]
27. [
28. {IMMUTABLE | STABLE | VOLATILE }
29. | {SHIPPABLE | NOT SHIPPABLE}
30. | {PACKAGE}
31. | [ NOT ] LEAKPROOF
32. | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT }
33. | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | | AUTHID DEFINER | AUTHID CURRENT_USER}
34. | COST execution_cost
35. | ROWS result_rows
36. | SET configuration_parameter { {TO | =} value | FROM CURRENT }
37. ][...]
38. {
39. IS | AS
40. } plsql_body
41. /
CREATE GROUP
创建一个新用户组。
1. CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [ EXPIRED ] | DISABLE };
3. where option can be:
4. {SYSADMIN | NOSYSADMIN}
5. | {MONADMIN | NOMONADMIN}
6. | {OPRADMIN | NOOPRADMIN}
7. | {POLADMIN | NOPOLADMIN}
8. | {AUDITADMIN | NOAUDITADMIN}
9. | {CREATEDB | NOCREATEDB}
10. | {USEFT | NOUSEFT}
11. | {CREATEROLE | NOCREATEROLE}
12. | {INHERIT | NOINHERIT}
13. | {LOGIN | NOLOGIN}
14. | {REPLICATION | NOREPLICATION}
15. | {INDEPENDENT | NOINDEPENDENT}
16. | {VCADMIN | NOVCADMIN}
17. | {PERSISTENCE | NOPERSISTENCE}
18. | CONNECTION LIMIT connlimit
19. | VALID BEGIN 'timestamp'
20. | VALID UNTIL 'timestamp'
21. | RESOURCE POOL 'respool'
22. | USER GROUP 'groupuser'
23. | PERM SPACE 'spacelimit'
24. | TEMP SPACE 'tmpspacelimit'
25. | SPILL SPACE 'spillspacelimit'
26. | NODE GROUP logic_group_name
27. | IN ROLE role_name [, ...]
28. | IN GROUP role_name [, ...]
29. | ROLE role_name [, ...]
30. | ADMIN role_name [, ...]
31. | USER role_name [, ...]
32. | SYSID uid
33. | DEFAULT TABLESPACE tablespace_name
34. | PROFILE DEFAULT
35. | PROFILE profile_name
36. | PGUSER
CREATE INDEX
在指定的表上创建索引。
1. CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ]
2. ({ { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] }[, ...] )
3. [ WITH ( {storage_parameter = value} [, ... ] ) ]
4. [ TABLESPACE tablespace_name ]
5. [ WHERE predicate ];
6. CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ]
7. ( {{ column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] }[, ...] )
8. [ LOCAL [ ( { PARTITION index_partition_name [ TABLESPACE index_partition_tablespace ] } [, ...] ) ] | GLOBAL ]
9. [ WITH ( { storage_parameter = value } [, ...] ) ]
10. [ TABLESPACE tablespace_name ];
CREATE LANGUAGE
定义一种新的过程语言。单机和集中式暂不支持创建过程语言。
1. CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ]
2. ({ { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] }[, ...] )
3. [ WITH ( {storage_parameter = value} [, ... ] ) ]
4. [ TABLESPACE tablespace_name ]
5. [ WHERE predicate ];
6. CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ]
7. ( {{ column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] }[, ...] )
8. [ LOCAL [ ( { PARTITION index_partition_name [ TABLESPACE index_partition_tablespace ] } [, ...] ) ] | GLOBAL ]
9. [ WITH ( { storage_parameter = value } [, ...] ) ]
10. [ TABLESPACE tablespace_name ];
12. openGauss=# \h CREATE LANGUAGE
13. Command: CREATE LANGUAGE
14. Description: define a new procedural language
15. Syntax:
16. CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE name;
17. CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
18. HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ];
CREATE MASKING POLICY
创建脱敏策略。
1. CREATE MASKING POLICY policy_name masking_clause [, ... ] [ policy_filter_clause ] [ ENABLE | DISABLE ];
3. where masking_clause can be:
4. masking_function ON LABEL(label_name [, ... ])
6. where masking_function can be:
7. { maskall | randommasking | creditcardmasking | basicemailmasking | fullemailmasking | shufflemasking | alldigitsmasking | regexpmasking }
9. where policy_filter_clause can be:
10. FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
12. where FILTER_TYPE can be:
13. { APP | ROLES | IP }
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW会创建一个全量物化视图,并且后续可以使用REFRESH MATERIALIZED VIEW(全量刷新)刷新物化视图的数据。
1. CREATE [ INCREMENTAL ] MATERIALIZED VIEW table_name
2. [ (column_name [, ...] ) ]
3. [ TABLESPACE tablespace_name ]
4. AS query
CREATE MODEL
训练机器学习模型并保存模型。
1. CREATE MODEL model_name USING algorithm_name
2. [FEATURES { {expression [ [ AS ] output_name ]} [, ...] }]
3. [TARGET { {expression [ [ AS ] output_name ]} [, ...] }]
4. FROM { table_name | select_query }
5. WITH hyperparameter_name = { hyperparameter_value | DEFAULT } [, ...] }
CREATE OPERATOR
定义一个新操作符。
1. CREATE OPERATOR name (
2. PROCEDURE = function_name
3. [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
4. [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
5. [, RESTRICT = res_proc ] [, JOIN = join_proc ]
6. [, HASHES ] [, MERGES ]
7. )
CREATE PACKAGE
创建一个新的PACKAGE。
1. CREATE [ OR REPLACE ] PACKAGE [ schema ] package_name
2. [ invoker_rights_clause ] { IS | AS } item_list_1 END package_name;
CREATE PROCEDURE
创建一个新的存储过程。
``` 1. CREATE [ OR REPLACE ] PACKAGE [ schema ] package_name 2. [ invoker_rights_clause ] { IS | AS } item_list_1 END package_name;
- openGauss=# \h CREATE PROCEDURE
- Command:
(本文超出站点单文档体积上限,已截断)
