华为云用户手册
-
table_constraints table_constraints视图描述了哪些表具有约束。该视图为只读,不允许修改。所有用户对这个视图有“读取”权限。 表1 information_schema.table_constraints字段 名称 类型 描述 CONSTRAINT_CATA LOG varchar(512) 约束所属数据库的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 CONSTRAINT_SCHEMA varchar(64) 约束所属的Schema名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 CONSTRAINT_NAME varchar(64) 约束的名称。如果是主键约束,则显示为PRIMARY。 TABLE_SCHEMA varchar(64) 表所属的Schema的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 TABLE_NAME varchar(64) 表的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 CONSTRAINT_TYPE varchar(64) 约束的类型。取值:unique、primary key、 foreign key、check。 父主题: Information Schema
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --创建基本表table_for_label。 m_db=# CREATE TABLE table_for_label(col1 int, col2 text); --创建资源标签table_label。 m_db=# CREATE RESOURCE LABEL table_label ADD COLUMN(table_for_label.col1); --将col2添加至资源标签table_label中。 m_db=# ALTER RESOURCE LABEL table_label ADD COLUMN(table_for_label.col2); --将资源标签table_label中的一项移除。 m_db=# ALTER RESOURCE LABEL table_label REMOVE COLUMN(table_for_label.col1); --删除资源标签table_label。 m_db=# DROP RESOURCE LABEL table_label; --删除基本表table_for_label。 m_db=# DROP TABLE table_for_label;
-
修改表示例 重命名表 m_db=# CREATE TABLE aa(c1 int, c2 int); m_db=# ALTER TABLE aa RENAME TO test_alt1; 修改表所属模式 --创建模式test_schema。 m_db=# CREATE SCHEMA test_schema; --把表test_alt1的所属模式修改为test_schema。 m_db=# ALTER TABLE test_alt1 SET SCHEMA test_schema; --查询表信息。 m_db=# SELECT schemaname,tablename FROM pg_tables WHERE tablename = 'test_alt1'; schemaname | tablename -------------+----------- test_schema | test_alt1 (1 row) 修改表的所有者 --创建用户test_user。 m_db=# CREATE USER test_user PASSWORD 'XXXXXXXXXX'; -- 修改test_alt1表的所有者为test_user。 m_db=# ALTER TABLE test_schema.test_alt1 OWNER TO test_user; -- 查看。 m_db=# SELECT tablename, schemaname, tableowner FROM pg_tables WHERE tablename = 'test_alt1'; tablename | schemaname | tableowner -----------+-------------+------------ test_alt1 | test_schema | test_user (1 row)
-
修改约束示例 修改字段默认值 --建表。 m_db=# CREATE TABLE test_alt3(pid INT, areaid CHAR(5), name VARCHAR(20)); --修改test_alt1表中id的默认值。 m_db=# ALTER TABLE test_alt3 ALTER COLUMN areaid SET DEFAULT '00000'; --查看。 m_db=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+------------------------- pid | integer | areaid | char(5) | default '00000'::bpchar name | varchar(20) | --删除id的默认值。 m_db=# ALTER TABLE test_alt3 ALTER COLUMN areaid DROP DEFAULT; --查看。 m_db=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | areaid | char(5) | name | varchar(20) | 添加表级约束 直接添加约束 --给表添加主键约束。 m_db=# ALTER TABLE test_alt3 ADD CONSTRAINT pk_test3_pid PRIMARY KEY (pid); --查看。 m_db=# \d test_alt3 Table "public.test_alt3" Column | Type | Modifiers --------+-----------------------+----------- pid | integer | not null areaid | integer | name | varchar(20) | Indexes: "pk_test3_pid" PRIMARY KEY, btree (pid) TABLESPACE pg_default
-
参数说明 IF EXISTS 如果不存在相同名称的表,不会抛出一个错误,而会发出一个通知,告知表不存在。 table_name [*] | ONLY table_name | ONLY ( table_name ) table_name是需要修改的表名。 若声明了ONLY选项,则只有该表被更改。若未声明ONLY,该表及其所有子表都将会被更改。另外,可以在表名称后面显示地增加*选项来指定包括子表,即表示所有后代表都被扫描,这是默认行为。目前ONLY和增加*选项保留语法,但功能不支持。 constraint_name 在DROP CONSTRAINT操作中表示要删除的现有约束的名称。 在ADD CONSTRAINT操作中表示新增的约束名称。 index_name 索引名称。 在ADD CONSTRAINT操作中: 对于外键约束,constraint_name和index_name同时指定时,索引名为constraint_name。 对于唯一键约束,constraint_name和index_name同时指定时,索引名为index_name。 USING method 指定创建索引的方法。 取值范围参考参数说明中的USING method。 在ADD CONSTRAINT操作中: 未指定USING method时,对于ASTORE的存储方式,默认索引方法为btree;对于USTORE的存储方式,默认索引方法为ubtree。 当表的存储方式为USTORE时,SQL语句中约束指定为using btree,底层会自动将约束建立为using ubtree。 ASC | DESC ASC表示指定按升序排序(默认)。DESC指定按降序排序。 expression 创建一个基于该表的一个或多个字段的表达式索引约束,必须写在圆括弧中。 storage_parameter 存储参数的名称。 支持使用ALTER TABLE SET/RESET语法修改的存储参数如下: parallel_workers 表示创建索引时起的bgworker线程数量,例如2就表示将会起2个bgworker线程并发创建索引。 取值类型:int类型 取值范围:[0,32],0表示关闭并行建索引。 默认值:不设置该参数,表示未开启并行建索引功能。 new_owner 表新拥有者的名称,用户名要求详见•user_name。 column_name,column_1_name, column_2_name 现存的或新字段的名称。 data_type 新字段的类型,或者现存字段的新类型。 compress_mode 表字段的压缩可选项。该子句指定该字段优先使用的压缩算法。行存表不支持压缩。当前M-Compatibility下无法使用。 charset 指定表字段的字符集。单独指定时会将字段的字符序设置为指定的字符集的默认字符序。 collation 字段排序规则(字符序)名称。可选字段COLLATE指定了新字段的排序规则,如果省略,排序规则为新字段的默认类型。排序规则可以使用“select * from pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。 还支持utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci、binary、gbk_chinese_ci、gbk_bin、gb18030_chinese_ci、gb18030_bin字符序,请参见表级字符集和字符序。 仅字符类型支持指定字符集,指定为BINARY字符集或字符序实际是将字符类型转化为对应的二进制类型,若类型映射不存在则报错。当前仅有TEXT类型转化为BLOB的映射。 除BINARY字符集、字符序外,当前仅支持指定与数据库编码相同的字符集。 字段字符集或字符序未显式指定时,若指定了表的默认字符集或字符序,字段字符集和字符序将从表上继承。 当修改的字符集或字符序对应的字符集与当前字段字符集不同时,会将字段中的数据转换为指定的字符集进行编码。 NOT NULL | NULL 设置列是否允许空值。 ENABLE 表示启动该约束,缺省时默认启用。 CHECK ( expression ) 每次将要插入的新行或者将要被更新的行必须使表达式结果为真才能成功,否则会抛出一个异常并且不会修改数据库。 目前,CHECK表达式不能包含子查询。 DEFAULT default_expr 使用DEFAULT子句给字段指定缺省表达式,缺省表达式将被用于任何未声明该字段数值的插入操作。如果没有指定缺省值则缺省值为NULL 。 当未在缺省表达式外嵌套括号时,支持指定以下内容:常量、带正负号的数值常量、update_expr。 当在缺省表达式外嵌套括号时,支持指定以下内容:常量、带正负号的数值常量、update_expr、CURRENT_TIME/CURTIME函数、CURRENT_DATE/CURDATE函数(CURRENT_TIME/CURRENT_DATE支持不带括号形式的调用)。 仅支持在TIMESTAMP、DATETIME类型的字段上指定update_expr作为默认值,且字段的精度与update_expr的精度须保持一致。 ON UPDATE update_expr ON UPDATE子句为字段的一种属性约束。 当对表中某元组执行UPDATE操作时,若更新字段的新值和表中旧值不相同,则表中该元组上具有该属性且不在更新字段内的字段值自动更新为当前时间戳;若更新字段的新值和表中旧值相同,则表中该元组上具有该属性且不在更新字段内的字段值不变,保持原有值;若具有该属性的字段在更新字段内,则对应这些字段值直接按指定更新的值更新。 语法上update_expr支持CURRENT_TIMESTAMP 、LOCALTIMESTAMP 、LOCALTIME、NOW()四种关键字,也支持关键字带括号指定或不指定精度。例如:ON UPDATE CURRENT_TIMESTAMP()、ON UPDATE CURRENT_TIMESTAMP(5)、ON UPDATE LOCALTIMESTAMP()、ON UPDATE LOCALTIMESTAMP(6)等。不带括号或空括号时精度为0,其中NOW关键字不支持不带括号。四种关键字互为同义词,属性效果相同。 该属性支持在如下类型的列上指定: TIMESTAMP、DATETIME。 该属性指定的精度和对应列上类型指定的精度必须一致,否则会触发报错。例如:CREATE TABLE t1 (col1 timestamp(6) ON UPDATE CURRENT_TIMESTAMP(6)); 若精度不一致,会产生ERROR: Invalid ON UPDATE clause for "col1" 报错。 该属性和生成列约束不能同时指定同一列。 分区表中的分区键不支持指定该属性。 [GENERATED ALWAYS] AS ( generation_expr ) [STORED] 该子句将字段创建为生成列,生成列的值在写入(插入或更新)数据时由generation_expr计算得到,STORED表示像普通列一样存储生成列的值。 STORED关键字可省略,与不省略STORED语义相同。 生成表达式不能以任何方式引用当前行以外的其他数据。生成表达式不能引用其他生成列,不能引用系统列。生成表达式不能返回结果集,不能使用子查询,不能使用聚集函数。生成表达式调用的函数只能是不可变(IMMUTABLE)函数。 不能为生成列指定默认值。 生成列不能作为分区键的一部分。 生成列不能和ON UPDATE约束子句的CASCADE,SET NULL,SET DEFAULT动作同时指定。生成列不能和ON DELETE约束子句的SET NULL,SET DEFAULT动作同时指定。 修改和删除生成列的方法和普通列相同。删除生成列依赖的普通列,生成列被自动删除。不能改变生成列所依赖的列的类型。 生成列不能被直接写入。在INSERT或UPDATE命令中, 不能为生成列指定值, 但是可以指定关键字DEFAULT。 生成列的权限控制和普通列一样。 AUTO_INCREMENT 指定列为自动增长列。 详见:•AUTO_INCREMENT。 COMMENT [ = ] 'string' COMMENT [ = ] 'string'子句表示给表添加注释。 在column_constraint中的COMMENT 'string'表示给列添加注释。 在table_constraint中的COMMENT 'string'表示给主键和唯一键对应的索引添加注释。 具体请参见:•COMMENT [ = ] 'string' 列级唯一约束:UNIQUE [KEY] index_parameters UNIQUE KEY与UNIQUE语义相同。 UNIQUE约束表示表里的一个或多个字段的组合必须在全表范围内唯一。 表级唯一约束:UNIQUE [INDEX | KEY] [ index_name ][ USING method ]( {{ column_name [ ( length ) ] | ( expression ) } [ ASC | DESC ] }[, ... ] ) index_parameters UNIQUE约束表示表里的一个或多个字段的组合必须在全表范围内唯一。 column_name (length)是前缀键,详见:•column_name ( length )。 index_name为索引名。 对于唯一键约束,constraint_name和index_name同时指定时,索引名为index_name。 列级主键约束:[PRIMARY] KEY index_parameters 表级主键约束:PRIMARY KEY [index_name] [ USING method ] ( { column_name [ ASC | DESC ] } [, ... ] ) index_parameters 主键约束表明表中的一个或者一些字段只能包含唯一(不重复)的非NULL值。 列级外键约束:REFEREN CES reftable [ ( refcolumn ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] 表级外键约束:FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] 表列字段约束REFERENCES使用时语法不报错也没有提示,但实际不生效。 外键约束要求新表中一列或多列构成的组应该只包含、匹配被参考表中被参考字段值。若省略refcolumn,则将使用reftable的主键。被参考列应该是被参考表中的唯一字段或主键。外键约束不能被定义在临时表和永久表之间。 参考字段与被参考字段之间存在三种类型匹配,分别是: MATCH FULL:不允许一个多字段外键的字段为NULL,除非全部外键字段都是NULL。 MATCH SIMPLE(缺省):允许任意外键字段为NULL。 另外,当被参考表中的数据发生改变时,某些操作也会在新表对应字段的数据上执行。ON DELETE子句声明当被参考表中的被参考行被删除时要执行的操作。ON UPDATE子句声明当被参考表中的被参考字段数据更新时要执行的操作。对于ON DELETE子句、ON UPDATE子句的可能动作: NO ACTION(缺省):删除或更新时,创建一个表明违反外键约束的错误。 RESTRICT:删除或更新时,创建一个表明违反外键约束的错误。与NO ACTION相同。 CASCADE:删除新表中任何引用了被删除行的行,或更新新表中引用行的字段值为被参考字段的新值。 SET NULL:设置引用字段为NULL。 SET DEFAULT:设置引用字段为它们的缺省值。 外键约束的完整性检查由GUC参数foreign_key_checks进行控制,foreign_key_checks可以设置为on/off,分别表示启用/关闭外键约束的完整性检查,默认情况下为on。 WITH ( {storage_parameter = value} [, ... ] ) 索引指定一个可选的存储参数。 new_table_name 修改后新的表名称。 new_column_name 表中指定列修改后新的列名称。 new_index_name 修改后表上索引的新名称。 new_schema 修改后新的模式名称。 CASCADE | RESTRICT CASCADE: 级联删除依赖于被依赖字段或者约束的对象(比如引用该字段的视图)。 RESTRICT:如果字段或者约束还有任何依赖的对象,则拒绝删除该字段。这是缺省行为。 该属性在数据库M-compatibility模式兼容版本控制开关s1及以上版本(如m_format_dev_version = 's1')时仅语法支持,但实际不生效。 FIRST 新增列或修改列到第一位。 AFTER column_name 新增列或修改列到column_name之后。 有规则依赖的表不支持改变表列的位置(包括新增和修改导致列位置的变化)。 schema_name 表所在的模式名称。
-
修改列示例 修改列名 -- 建表。 m_db=# CREATE TABLE test_alt2(c1 INT,c2 INT); -- 修改列名。 m_db=# ALTER TABLE test_alt2 CHANGE COLUMN c1 id INT; m_db=# ALTER TABLE test_alt2 CHANGE COLUMN c2 areaid INT; -- 查看。 m_db=# \d test_alt2 Table "public.test_alt2" Column | Type | Modifiers --------+---------+----------- id | integer | areaid | integer | 增加列 -- 表test_alt2增加列。 m_db=# ALTER TABLE test_alt2 ADD COLUMN name VARCHAR(20); -- 查看。 m_db=# \d test_alt2 Table "public.test_alt1" Column | Type | Modifiers ----------+-----------------------+----------- id | integer | areacode | integer | name | varchar(20) | 增加AUTO_INCREMENT自增列 -- 建表,新增自增列。 m_db=# CREATE TABLE test_autoinc(col1 int); -- 插入一条数据。 m_db=# INSERT INTO test_autoinc(col1) VALUES(1); -- 添加一个本地自增列,从1开始自增。 m_db=# ALTER TABLE test_autoinc ADD COLUMN col int AUTO_INCREMENT; m_db=# SELECT col,col1 FROM test_autoinc ORDER BY 2,1; col | col1 -----+------ 1 | 1 (1 row) -- 将下一个自增值设为10。 m_db=# ALTER TABLE test_autoinc AUTO_INCREMENT = 10; -- NULL触发自增,自增值为10。 m_db=# INSERT INTO test_autoinc(col, col1) VALUES(NULL,2); -- 0触发自增,自增值为11。 m_db=# INSERT INTO test_autoinc(col, col1) VALUES(0,3); m_db=# SELECT col,col1 FROM test_autoinc ORDER BY 2,1; col | col1 -----+------ 1 | 1 10 | 2 11 | 3 (3 rows) 修改列的数据类型 -- 修改test_alt2表中name字段的类型。 m_db=# ALTER TABLE test_alt2 MODIFY name VARCHAR(50); -- 查看。 m_db=# \d test_alt2 Table "public.test_alt1" Column | Type | Modifiers --------+-----------------------+----------- c1 | integer | c2 | integer | name | varchar(50) | 删除列 -- 删除test_alt2中areaid字段。 m_db=# ALTER TABLE test_alt2 DROP COLUMN areaid; -- 查看 m_db=# \d test_alt2 Table "public.test_alt2" Column | Type | Modifiers --------+-----------------------+----------- id | integer | name | varchar(50) |
-
修改索引示例 删除表中索引 -- 创建表和索引 m_db=# CREATE TABLE t01(c1 int PRIMARY KEY, c2 int UNIQUE); m_db=# CREATE INDEX idx1 ON t01(c1); m_db=# CREATE INDEX idx2 ON t01(c1,c2); m_db=# \d+ t01 Table "public.t01" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- c1 | integer | not null | plain | | c2 | integer | | plain | | Indexes: "t01_pkey" PRIMARY KEY, ubtree ON t01 (c1) WITH (storage_type=USTORE) TABLESPACE pg_default "t01_c2_key" UNIQUE CONSTRAINT, ubtree ON t01 (c2) WITH (storage_type=USTORE) TABLESPACE pg_default "idx1" ubtree ON t01 (c1) WITH (storage_type=USTORE) TABLESPACE pg_default "idx2" ubtree ON t01 (c1, c2) WITH (storage_type=USTORE) TABLESPACE pg_default Has OIDs: no Options: orientation=row, compression=no, storage_type=USTORE, collate=1537, segment=off -- 删除表中索引 m_db=# ALTER TABLE t01 DROP INDEX idx1, DROP INDEX idx2; m_db=# ALTER TABLE t01 DROP INDEX t01_pkey, DROP INDEX t01_c2_key; m_db=# \d+ t01 Table "public.t01" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- c1 | integer | not null | plain | | c2 | integer | | plain | | Has OIDs: no Options: orientation=row, compression=no, storage_type=USTORE, collate=1537, segment=off m_db=# DROP TABLE t01;
-
语法格式 修改表的定义。 ALTER TABLE { table_name [*] | ONLY table_name | ONLY ( table_name ) } action [, ... ]; 其中具体表操作action可以是以下子句之一: column_clause | ADD [CONSTRAINT] table_constraint | DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] | SET ( {storage_parameter = value} [, ... ] ) | RESET ( storage_parameter [, ... ] ) | OWNER TO new_owner | TO { GROUP groupname | NODE ( nodename [, ... ] ) } | ADD NODE ( nodename [, ... ] ) | DELETE NODE ( nodename [, ... ] ) | AUTO_INCREMENT [ = ] value | COMMENT [ = ] 'string' | [ [ DEFAULT ] {CHARACTER SET | CHAR SET | CHARSET} [ = ] charset_name] [ [ DEFAULT ] COLLATE [ = ] collation_name] | CONVERT TO {CHARACTER SET | CHAR SET | CHARSET} charset_name [COLLATE collation_name ] | ADD index_clause | DROP {INDEX | KEY} index_name | DROP PRIMARY KEY | DROP FOREIGN KEY fk_name | REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING } ADD [CONSTRAINT] table_constraint 给表增加一个新的约束。 DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] 删除一个表上的约束。 SET ( {storage_parameter = value} [, ... ] ) 修改表的一个或多个存储参数。 RESET ( storage_parameter [, ... ] ) 重置表的一个或多个存储参数。 OWNER TO new_owner 将表、序列、视图的所有者改变成指定的用户,用户名要求详见•user_name。 TO { GROUP groupname | NODE ( nodename [, ... ] ) } 此语法仅在扩展模式(GUC参数support_extended_features为on时)下可用。该模式谨慎打开,主要供内部扩容工具使用,一般用户不应使用该模式。 ADD NODE ( nodename [, ... ] ) 此语法主要供内部扩容工具使用,一般用户不建议使用。 DELETE NODE ( nodename [, ... ] ) 此语法主要供内部缩容工具使用,一般用户不建议使用。 AUTO_INCREMENT [ = ] value 设置自动增长列下一次的自增值。设置的值只有大于当前自增计数器时才会生效。 value必须是非负数,且不得大于2127-1。 [ [ DEFAULT ] {CHARACTER SET | CHAR SET | CHARSET} [ = ] default_charset ] [ [ DEFAULT ] COLLATE [ = ] default_collation ] 将表的默认字符集和默认字符序修改为指定的值。修改不会影响表中当前已经存在的列。 CONVERT TO {CHARACTER SET | CHAR SET | CHARSET} charset [ COLLATE collation ] 将表的默认字符集和默认字符序修改为指定的值,同时将表中的所有字符类型的字段的字符集和字符序设置为指定的值,并将字段里的数据转换为新字符集编码。 该语法不支持分区表修改字符序。 DROP {INDEX | KEY} index_name 删除表上的索引。INDEX和KEY为同义词。 DROP PRIMARY KEY 删除表上的主键约束。 DROP FOREIGN KEY fk_name 删除指定的外键约束。 REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING } 在逻辑复制场景下,指定该表的UPDATE和DELETE操作中旧元组的记录级别。 DEFAULT记录主键的列的旧值,没有主键则不记录。 USING INDEX记录命名索引覆盖的列的旧值,这些值必须是唯一的、不局部的、不可延迟的,并且仅包括标记为NOT NULL的列。 FULL记录该行中所有列的旧值。 NOTHING不记录有关旧行的信息。 在逻辑复制场景,解析该表的UPDATE和DELETE操作语句时,解析出的旧元组由以此方法记录的信息组成。对于有主键表该选项可设置为DEFAULT或FULL。对于无主键表该选项需设置为FULL,否则解码时旧元组将解析为空。一般场景不建议设置为NOTHING,旧元组会始终解析为空。 针对ustore表,选项NOTHING无效,实际效果等同于FULL;DEFAULT没有主键时,记录该行所有列。 其中列相关的操作column_clause可以是以下子句之一: ADD [ COLUMN ] column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ][ COLLATE collation ] [ column_constraint [ ... ] ] [ FIRST | AFTER column_name ] | ADD ({ column_name data_type [ compress_mode ]} [, ...] ) | MODIFY column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | MODIFY column_name [ CONSTRAINT constraint_name ] NULL | MODIFY [ COLUMN ] column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ] [{[ COLLATE collation ] | [ column_constraint ]} [ ... ] ] [ FIRST | AFTER column_name ] | CHANGE [ COLUMN ] old_column_name new_column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ] [{[ COLLATE collation ] | [ column_constraint ]} [ ... ] ] [ FIRST | AFTER column_name ] | DROP [ COLUMN ] column_name [ RESTRICT | CASCADE ] | ALTER [ COLUMN ] column_name { SET DEFAULT default_expr | DROP DEFAULT } | MODIFY column_name data_type [GENERATED ALWAYS] AS generation_expr [STORED] ADD [ COLUMN ] column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ] [ COLLATE collation ] [ column_constraint [ ... ] ] [ FIRST | AFTER column_name] 向表中增加一个新的字段。用ADD COLUMN增加一个字段,所有表中现有行都初始化为该字段的缺省值(如果没有声明DEFAULT子句,值为NULL)。其中FIRST | AFTER column_name表示新增字段到某个位置。 ADD ( { column_name data_type [ compress_mode ] } [, ...] ) 向表中增加多列。 MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] ) 修改表已存在字段的数据类型。此命令会导致该字段的统计信息清空,建议在修改后重新收集该列的统计信息。 MODIFY [ COLUMN ] column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ] [{[ COLLATE collation ] | [ column_constraint ]} [ ... ] ] [FIRST | AFTER column_name] 修改表已存在字段的定义,将用新定义替换字段原定义,原字段上的索引、独立对象约束(例如:主键、唯一键、CHECK约束等)不会被删除。[FIRST | AFTER column_name]语法表示修改字段定义的同时修改字段在表中的位置。 不支持修改分区键信息,即不支持指定column_name为分区键。 被修改数据类型或排序规则的字段如果被一个生成列引用,这个生成列的数据将会重新生成。 被修改字段若被一些对象依赖(比如:索引、独立对象约束、视图等),修改字段过程中将会重建这些对象。若被修改后字段定义违反此类对象的约束,修改操作会失败,比如:修改作为视图结果列的字段的数据类型。请修改字段前评估这类影响。 被修改字段若被一些对象调用,修改字段不会处理这些对象。修改字段完毕后,这些对象有可能出现不可用的情况,请修改字段前评估这类影响。 修改字段的字符集或字符序会将字段中的数据转换为新的字符集进行编码。 此命令会导致该字段的统计信息清空,建议在修改后重新收集该列的统计信息。 CHANGE [ COLUMN ] old_column_name new_column_name data_type [ {CHARACTER SET | CHAR SET | CHARSET} charset ] [{[ COLLATE collation ] | [ column_constraint ]} [ ... ] ] [FIRST | AFTER column_name] 修改表已存在字段的名称和定义,字段新名称不能是已有字段的名称,将用新名称和定义替换字段原名称和定义。原字段上的索引、独立对象约束(例如:主键、唯一键、CHECK约束)等不会被删除。[FIRST | AFTER column_name]语法表示修改字段名称和定义的同时修改字段在表中的位置。 不支持修改分区键字段的数据类型和排序规则,不支持修改规则引用的字段的数据类型和排序规则。 被修改数据类型或排序规则的字段如果被一个生成列引用,这个生成列的数据将会重新生成。 被修改字段若被一些对象依赖(比如:索引、独立对象约束、视图等),修改字段过程中将会重建这些对象。若被修改后字段定义违反此类对象的约束,修改操作会失败,比如:修改作为视图结果列的字段的数据类型。请修改字段前评估这类影响。 被修改字段若被一些对象调用,修改字段不会处理这些对象。修改字段名称后,这些对象有可能出现不可用的情况,请修改字段前评估这类影响。 修改字段的字符集或字符序会将字段中的数据转换为新的字符集进行编码。 DROP [ COLUMN ] column_name [ RESTRICT | CASCADE ] 从表中删除一个字段,和这个字段相关的索引和表约束也会被自动删除。CASCADE选项在数据库M-compatibility模式兼容版本控制开关s1及以上版本(如m_format_dev_version = 's1')时仅语法支持,但实际不生效。 DROP COLUMN命令并不是物理上把字段删除,而只是简单地把它标记为对SQL操作不可见。随后对该表的插入和更新将在该字段存储一个NULL。因此,删除一个字段是很快的,但是它不会立即释放表在磁盘上的空间,因为被删除了的字段占据的空间还没有回收。这些空间将在执行VACUUM时而得到回收。 ALTER [ COLUMN ] column_name { SET DEFAULT default_expr | DROP DEFAULT } 为一个字段设置或者删除缺省值。请注意缺省值只应用于随后的INSERT命令,它们不会修改表中已经存在的行。也可以为视图创建缺省,这个时候它们是在视图的ON INSERT规则应用之前插入到INSERT句中的。 此处的default_expr支持范围请参考•DEFAULT default_expr MODIFY column_name data_type [GENERATED ALWAYS] AS generation_expr [STORED] 修改生成列的数据类型和表达式。详见[GENERATED ALWAYS] AS ( generation_expr ) [STORED]。 其中列约束column_constraint为: AUTO_INCREMENT | COMMENT 'string' |[ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression ) | DEFAULT default_expr | ON UPDATE update_expr | [GENERATED ALWAYS] AS ( generation_expr ) [STORED] | UNIQUE [KEY] index_parameters | [PRIMARY] KEY index_parameters | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } 其中列的压缩可选项compress_mode为: [ DICTIONARY ] 其中update_expr为: { CURRENT_TIMESTAMP | LOCALTIMESTAMP | NOW() } index_clause {INDEX | KEY} [ [schema_name.] index_name ] [ USING method ] ({column_name [(length)] | (expr) [ASC | DESC]}[,...]) [[COMMENT 'string' | USING method][...]] 参数说明,详见CREATE INDEX语法。 其中表约束table_constraint为: [ CONSTRAINT [ constraint_name ] ] { CHECK ( expression ) | UNIQUE [INDEX|KEY][index_name] [USING access_method] ( { { column_name [ ( length ) ] | ( expression ) } [ ASC | DESC ] } [, ... ] ) index_parameters [USING access_method] [comment 'string']| PRIMARY KEY [ USING access_method ] [index_name] ( { column_name [ ASC | DESC ] }[, ... ] ) index_parameters [USING access_method] [comment 'string'] } FOREIGN KEY [ idx_name ] ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH FULL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } access_method可取值为: BTREE 其中索引参数index_parameters为: [ WITH ( {storage_parameter = value} [, ... ] ) ]
-
注意事项 表的所有者、被授予了表ALTER权限的用户或被授予ALTER ANY TABLE权限的用户有权限执行ALTER TABLE命令,系统管理员默认拥有此权限。但要修改表的所有者或者修改表的模式,当前用户必须是该表的所有者或者系统管理员,且该用户是新所有者角色的成员。 不能修改分区表的TABLESPACE,但可以修改分区的TABLESPACE。 不支持修改存储参数ORIENTATION。 SET SCHEMA操作不支持修改为系统内部模式,当前仅支持用户模式之间的修改。
-
字符类型表达式的字符集和字符序 每一个字符类型的表达式含有字符集和字符序属性。字符串常量的默认字符集与字符序由系统参数character_set_connection和collation_connection决定。 字符集语法: 1 [_charset_name]'string' 语法说明: charset_name 指定一个字符集,解析后面的string表达式,charset_name为合法的字符集名。 示例: 1 2 --指定一个字符集,解析后面的string表达式 m_db=# select _utf8' GaussDB '; 字符序语法: 其他字符串类型的表达式也可以指定字符序。 1 expression [COLLATE collation_name] 语法说明: COLLATE collation_name 指定字符序的名称,用于设置这个字符串的字符序属性。指定的字符序必须是表达式的字符集允许的字符序。表达式的数据类型只能是支持字符序的数据类型。 示例: 1 2 --使用collate语句指定字符序 m_db=# SELECT 'a' COLLATE utf8mb4_general_ci = 'A'; 如不支持则会隐式转换成字符串类型,没有隐式转换路径则报错。 父主题: 字符集与字符序
-
示例 重命名用户组。 --创建用户组test。 m_db=# CREATE GROUP test PASSWORD '********'; --修改用户名,等效于ALTER GROUP RENAME。 m_db=# ALTER GROUP test RENAME TO tu_a1; 向用户组中添加或者删除用户。 --创建用户tu_a2、tu_a3。 m_db=# CREATE ROLE tu_a2 PASSWORD '********'; m_db=# CREATE ROLE tu_a3 PASSWORD '********'; --向用户组tu_a1中添加用户tu_a2。 m_db=# ALTER GROUP tu_a1 ADD USER tu_a2; --如上SQL等效于GRANT语句。 m_db=# GRANT tu_a1 TO tu_a3; --查询。 m_db=# SELECT groname, grolist FROM pg_group WHERE groname = 'tu_a1'; groname | grolist ---------+--------------- tu_a1 | {25590,25593} (1 row) m_db=# SELECT rolname, oid FROM pg_roles WHERE oid IN (25590,25593); rolname | oid ---------+------- tu_a2 | 25590 tu_a3 | 25593 (2 rows) --删除。 m_db=# DROP ROLE tu_a1,tu_a2,tu_a3;
-
SQL关键字 表1 SQL关键字 关键字 类型 ABSOLUTE 非保留 ACCESSIBLE 保留 ACCOUNT 非保留 ACTION 非保留 ACTIVE 非保留 ADD 非保留 ADDDATE 非保留 ADMIN 非保留 AFTER 非保留 AGAINST 非保留 AGGREGATE 非保留 ALGORITHM 非保留 ALL 保留 ALTER 非保留 ALWAYS 非保留 ANALYZE 保留 AND 保留 ANY 保留 APPEND 非保留 ARRAY 保留 AS 保留 ASC 保留 ASCII 非保留 ASENSITIVE 保留 ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 非保留 AT 非保留 ATTRIBUTE 非保留 AUTHID 非保留 AUTHENTICATION 非保留 AUTHORIZATION 非保留 AUTO_INCREMENT 非保留 AUTOEXTEND_SIZE 非保留 AVG 非保留 AVG_ROW_LENGTH 非保留 BACKUP 非保留 BEFORE 非保留 BEGIN 非保留 BEGIN_NON_ANOYBLOCK 非保留 BETWEEN 非保留(不能是函数或类型) BIGINT 非保留(不能是函数或类型) BINARY 保留 BINLOG 非保留 BIT 非保留(不能是函数或类型) BLOB 非保留(不能是函数或类型) BLOCK 非保留 BOOL 非保留(不能是函数或类型) BOOLEAN 非保留(不能是函数或类型) BOTH 保留 BTREE 非保留 BUCKETS 非保留 BULK 非保留 BY 非保留 BYTE 非保留 CACHE 非保留 CALL 非保留 CALLED 非保留 CASCADE 非保留 CASCADED 非保留 CASE 保留 CAST 非保留 CATALOG_NAME 非保留 CHAIN 非保留 CHALLENGE_RESPONSE 非保留 CHANGE 非保留 CHANGED 非保留 CHANNEL 非保留 CHAR 非保留(不能是函数或类型) CHARACTER 非保留(不能是函数或类型) CHARSET 非保留 CHECK 保留 CHECKPOINT 非保留 CHECKSUM 非保留 CIPHER 非保留 CLASS_ORIGIN 非保留 CLEAN 非保留 CLIENT 非保留 CLONE 非保留 CLOSE 非保留 CLUSTER 非保留 COALESCE 非保留 CODE 非保留 COLLATE 保留 COLLATION 非保留 COLUMN 保留 COLUMN_FORMAT 非保留 COLUMN_NAME 非保留 COLUMNS 非保留 COMMENT 非保留 COMMIT 非保留 COMMITTED 非保留 COMPACT 保留(可以是函数或类型) COMPLETION 非保留 COMPONENT 非保留 COMPRESSED 非保留 COMPRESSION 非保留 CONCURRENT 非保留 CONCURRENTLY 保留(可以是函数或类型) CONDITION 非保留 CONNECTION 非保留 CONSISTENT 非保留 CONSTRAINT 保留 CONSTRAINT_CATALOG 非保留 CONSTRAINT_NAME 非保留 CONSTRAINT_SCHEMA 非保留 CONSTRAINTS 非保留 CONTAINS 非保留 CONTEXT 非保留 CONTINUE 非保留 CONVERT 非保留 COORDINATOR 非保留 COORDINATORS 非保留 COPY 非保留 COST 非保留 COUNT 非保留 CPU 非保留 CREATE 保留 CROSS 保留(可以是函数或类型) CS V 非保留 CUBE 非保留 CUME_DIST 保留 CURRENT 非保留 CURRENT_DATE 保留 CURRENT_SCHEMA 保留(可以是函数或类型) CURRENT_TIME 保留 CURRENT_TIMESTAMP 保留 CURRENT_USER 保留 CURSOR 非保留 CURSOR_NAME 非保留 CURTIME 非保留 CYCLE 非保留 DATA 非保留 DATABASE 非保留 DATABASES 保留 DATAFILE 非保留 DATANODE 非保留 DATANODES 非保留 DATE 非保留(不能是函数或类型) DATE_ADD 非保留 DATE_FORMAT 非保留 DATE_SUB 非保留 DATETIME 非保留 DAY 非保留 DAY_HOUR 保留 DAY_MICROSECOND 保留 DAY_MINUTE 保留 DAY_SECOND 保留 DEALLOCATE 非保留 DEC 非保留(不能是函数或类型) DECIMAL 非保留(不能是函数或类型) DECLARE 非保留 DECODE 非保留 DEFAULT 保留 DEFAULT_AUTH 非保留 DEFINER 非保留 DEFINITION 非保留 DELAY_KEY_WRITE 非保留 DELAYED 保留 DELETE 非保留 DELIMITER 非保留 DENSE_RANK 保留 DESC 保留 DESCRIBE 保留 DESCRIPTION 非保留 DETERMINISTIC 非保留 DIAGNOS TICS 非保留 DICTIONARY 非保留 DIRECT 非保留 DIRECTORY 非保留 DISABLE 非保留 DISCARD 非保留 DISK 非保留 DISTINCT 保留 DISTINCTROW 保留 DISTRIBUTE 非保留 DISTRIBUTED 非保留 DIV 保留(可以是函数或类型) DO 非保留 DOCUMENT 非保留 DOUBLE 非保留(不能是函数或类型) DROP 非保留 DUAL 保留 DUMPFILE 非保留 DUPLICATE 非保留 DYNAMIC 非保留 EACH 非保留 ELSE 保留 ELSEIF 保留 EMPTY 保留 ENABLE 非保留 ENCLOSED 非保留 ENCRYPTION 非保留 END 非保留 ENDS 非保留 ENFORCED 非保留 ENGINE 非保留 ENGINE_ATTRIBUTE 非保留 ENGINES 非保留 ENUM 非保留 ERROR 非保留 ERRORS 非保留 ESCAPE 非保留 ESCAPED 非保留 EVENT 非保留 EVENTS 非保留 EVERY 非保留 EXCEPT 保留 EXCHANGE 非保留 EXCLUDE 非保留 EXECUTE 非保留 EXISTS 非保留(不能是函数或类型) EXIT 保留 EXPANSION 非保留 EXPIRE 非保留 EXPIRED 非保留 EXPLAIN 非保留 EXPORT 非保留 EXTENDED 非保留 EXTENSION 非保留 EXTENT_SIZE 非保留 EXTERNAL 非保留 EXTRACT 非保留 FACTOR 非保留 FAILED_LOGIN_ATTEMPTS 非保留 FALSE 保留 FAST 非保留 FAULTS 非保留 FENCED 非保留 FETCH 保留 FIELDS 非保留 FILE 非保留 FILE_BLOCK_SIZE 非保留 FILTER 非保留 FINISH 非保留 FIRST 非保留 FIRST_VALUE 保留 FIXED 非保留(不能是函数或类型) FLOAT 非保留(不能是函数或类型) FLOAT4 非保留(不能是函数或类型) FLOAT8 非保留(不能是函数或类型) FLUSH 非保留 FOLLOWING 非保留 FOLLOWS 非保留 FOR 保留 FORCE 保留 FOREIGN 保留 FORMAT 非保留 FORWARD 非保留 FOUND 非保留 FREEZE 保留(可以是函数或类型) FROM 保留 FULL 非保留 FULLTEXT 保留 FUNCTION 非保留 GENERAL 非保留 GENERATE 非保留 GENERATED 非保留 GEOMCOLLECTION 非保留 GEOMETRY 非保留 GEOMETRYCOLLECTION 非保留 GET 保留 GET_FORMAT 非保留 GET_MASTER_PUBLIC_KEY 非保留 GET_SOURCE_PUBLIC_KEY 非保留 GLOBAL 非保留 GRANT 保留 GRANTED 非保留 GRANTS 非保留 GROUP 保留 GROUP_REPLICATION 非保留 GROUPING 非保留(不能是函数或类型) GROUPS 保留 GTID_ONLY 非保留 HANDLER 非保留 HASH 非保留 HAVING 保留 HELP 非保留 HIGH_PRIORITY 保留 HISTOG RAM 非保留 HISTORY 非保留 HOLD 非保留 HOST 非保留 HOSTS 非保留 HOUR 非保留 HOUR_MICROSECOND 保留 HOUR_MINUTE 保留 HOUR_SECOND 保留 IDENTIFIED 非保留 IDENTITY 非保留 IF 保留 IGNORE 保留 IGNORE_SERVER_IDS 非保留 IMMUTABLE 非保留 IMPORT 非保留 IN 保留 INACTIVE 非保留 INCLUDING 非保留 INCREMENT 非保留 INDEX 保留 INDEXES 非保留 INFILE 非保留 INITIAL 非保留 INITIAL_SIZE 非保留 INITIATE 非保留 INNER 保留(可以是函数或类型) INOUT 非保留(不能是函数或类型) INPUT 非保留 INSENSITIVE 非保留 INSERT 非保留 INSERT_METHOD 非保留 INSTALL 非保留 INSTANCE 非保留 INT 非保留(不能是函数或类型) INT1 非保留(不能是函数或类型) INT2 非保留(不能是函数或类型) INT3 非保留(不能是函数或类型) INT4 非保留(不能是函数或类型) INT8 非保留(不能是函数或类型) INTEGER 非保留(不能是函数或类型) INTERSECT 保留 INTERVAL 保留 INTO 保留 INVISIBLE 非保留 INVOKER 非保留 IO 非保留 IO_AFTER_GTIDS 保留 IO_BEFORE_GTIDS 保留 IO_THREAD 非保留 IPC 非保留 IS 保留 ISNULL 非保留 ISOLATION 非保留 ISSUER 非保留 ITERATE 保留 JOIN 保留(可以是函数或类型) JSON 非保留 JSON_TABLE 保留 JSON_VALUE 非保留 KEY 保留 KEY_BLOCK_SIZE 非保留 KEYRING 非保留 KEYS 保留 KILL 非保留 LAG 保留 LANGUAGE 非保留 LAST 非保留 LAST_VALUE 保留 LATERAL 保留 LC_COLLATE 非保留 LEAD 保留 LEADING 保留 LEAKPROOF 非保留 LEAVE 保留 LEAVES 非保留 LEFT 保留(可以是函数或类型) LESS 非保留 LEVEL 非保留 LIKE 保留(可以是函数或类型) LIMIT 保留 LINEAR 保留 LINES 非保留 LINESTRING 非保留 LIST 非保留 LOAD 非保留 LOAD_BAD 非保留 LOAD_DISCARD 非保留 LOCAL 非保留 LOCALTIME 保留 LOCALTIMESTAMP 保留 LOCATION 非保留 LOCK 保留 LOCKED 非保留 LOCKS 非保留 LOGFILE 非保留 LOGS 非保留 LONG 保留 LONGBLOB 非保留(不能是函数或类型) LONGTEXT 非保留(不能是函数或类型) LOOP 非保留 LOW_PRIORITY 保留 MASTER 非保留 MASTER_AUTO_POSITION 非保留 MASTER_BIND 保留 MASTER_COMPRESSION_ALGORITHMS 非保留 MASTER_CONNECT_RETRY 非保留 MASTER_DELAY 非保留 MASTER_HEARTBEAT_PERIOD 非保留 MASTER_HOST 非保留 MASTER_LOG_FILE 非保留 MASTER_LOG_POS 非保留 MASTER_PASSWORD 非保留 MASTER_PORT 非保留 MASTER_PUBLIC_KEY_PATH 非保留 MASTER_RETRY_COUNT 非保留 MASTER_SSL 非保留 MASTER_SSL_CA 非保留 MASTER_SSL_CAPATH 非保留 MASTER_SSL_CERT 非保留 MASTER_SSL_CIPHER 非保留 MASTER_SSL_CRL 非保留 MASTER_SSL_CRLPATH 非保留 MASTER_SSL_KEY 非保留 MASTER_SSL_VERIFY_SERVER_CERT 保留 MASTER_TLS_CIPHERSUITES 非保留 MASTER_TLS_VERSION 非保留 MASTER_USER 非保留 MASTER_ZSTD_COMPRESSION_LEVEL 非保留 MATCH 保留 MAX_CONNECTIONS_PER_HOUR 非保留 MAX_QUERIES_PER_HOUR 非保留 MAX_ROWS 非保留 MAX_SIZE 非保留 MAX_UPDATES_PER_HOUR 非保留 MAX_USER_CONNECTIONS 非保留 MAXVALUE 保留 MEDIUM 非保留 MEDIUMBLOB 非保留(不能是函数或类型) MEDIUMINT 非保留(不能是函数或类型) MEDIUMTEXT 非保留(不能是函数或类型) MEMBER 非保留 MEMORY 非保留 MERGE 非保留 MESSAGE_TEXT 非保留 MICROSECOND 非保留 MIDDLEINT 保留 MIGRATE 非保留 MIN_ROWS 非保留 MINUTE 非保留 MINUTE_MICROSECOND 保留 MINUTE_SECOND 保留 MINVALUE 非保留 MOD 保留(可以是函数或类型) MODE 非保留 MODIFIES 保留 MODIFY 非保留 MONTH 非保留 MOVE 非保留 MULTILINESTRING 非保留 MULTIPOINT 非保留 MULTIPOLYGON 非保留 MUTEX 非保留 MYSQL_ERRNO 非保留 NAME 非保留 NAMES 非保留 NATIONAL 非保留(不能是函数或类型) NATURAL 保留(可以是函数或类型) NCHAR 非保留(不能是函数或类型) NDB 非保留 NDBCLUSTER 非保留 NESTED 非保留 NETWORK_NAMESPACE 非保留 NEVER 非保留 NEW 非保留 NEXT 非保留 NO 非保留 NO_WAIT 非保留 NO_WRITE_TO_BINLOG 保留 NOCYCLE 非保留 NODE 非保留 NODEGROUP 非保留 NOMAXVALUE 非保留 NOMINVALUE 非保留 NONE 非保留 NOT 保留 NOTHING 非保留 NOW 非保留 NOWAIT 非保留 NTH_VALUE 保留 NTILE 保留 NULL 保留 NULLS 非保留 NUMBER 非保留(不能是函数或类型) NUMERIC 非保留(不能是函数或类型) NVARCHAR 非保留(不能是函数或类型) OF 非保留 OFF 非保留 OFFSET 保留 OIDS 非保留 OJ 非保留 OLD 非保留 ON 保留 ONE 非保留 ONLY 保留 OPEN 非保留 OPERATOR 非保留 OPTIMIZE 保留 OPTIMIZE_COSTS 保留 OPTION 非保留 OPTIONAL 非保留 OPTIONALLY 非保留 OPTIONS 非保留 OR 保留 ORDER 保留 ORDINALITY 非保留 ORGANIZATION 非保留 OTHERS 非保留 OUT 非保留(不能是函数或类型) OUTER 保留(可以是函数或类型) OUTFILE 非保留 OVER 非保留 OWNED 非保留 OWNER 非保留 PACK_KEYS 非保留 PAGE 非保留 PARSER 非保留 PARTIAL 非保留 PARTITION 非保留 PARTITIONING 非保留 PARTITIONS 非保留 PASSWORD 非保留 PASSWORD_LOCK_TIME 非保留 PATH 非保留 PERCENT_RANK 保留 PERSIST 非保留 PERSIST_ONLY 非保留 PHASE 非保留 PLUGIN 非保留 PLUGINS 非保留 PLUGIN_DIR 非保留 POINT 非保留 POLYGON 非保留 PORT 非保留 PRECEDES 非保留 PRECEDING 非保留 PRECISION 非保留(不能是函数或类型) PREPARE 非保留 PREPARED 非保留 PRESERVE 非保留 PREV 非保留 PRIMARY 保留 PRIVILEGES 非保留 PRIVILEGE_CHECKS_USER 非保留 PROCEDURE 保留 PROCESS 非保留 PROCESSLIST 非保留 PROFILE 非保留 PROFILES 非保留 PROXY 非保留 PURGE 非保留 QUARTER 非保留 QUERY 非保留 QUICK 非保留 RANDOM 非保留 RANGE 非保留 RANK 保留 READ 保留 READS 保留 READ_ONLY 非保留 READ_WRITE 保留 REAL 非保留(不能是函数或类型) REBUILD 非保留 RECOVER 非保留 RECURSIVE 非保留 RECYCLEBIN 非保留 REDO_BUFFER_SIZE 非保留 REDUNDANT 非保留 REFERENCE 非保留 REFERENCES 保留 REGEXP 保留 REGISTRATION 非保留 REINDEX 非保留 RELATIVE 非保留 RELAY 非保留 RELAYLOG 非保留 RELAY_LOG_FILE 非保留 RELAY_LOG_POS 非保留 RELAY_THREAD 非保留 RELEASE 非保留 RELOAD 非保留 REMOVE 非保留 RENAME 非保留 REORGANIZE 非保留 REPAIR 非保留 REPEAT 保留 REPEATABLE 非保留 REPLACE 非保留 REPLICA 非保留 REPLICAS 非保留 REPLICATE_DO_DB 非保留 REPLICATE_DO_TABLE 非保留 REPLICATE_IGNORE_DB 非保留 REPLICATE_IGNORE_TABLE 非保留 REPLICATE_REWRITE_DB 非保留 REPLICATE_WILD_DO_TABLE 非保留 REPLICATE_WILD_IGNORE_TABLE 非保留 REPLICATION 非保留 REQUIRE 保留 REQUIRE_ROW_FORMAT 非保留 REQUIRE_TABLE_PRIMARY_KEY_CHECK 非保留 RESET 非保留 RESIGNAL 保留 RESOURCE 非保留 RESPECT 非保留 RESTART 非保留 RESTORE 非保留 RESTRICT 非保留 RESUME 非保留 RETAIN 非保留 RETURN 非保留 RETURNED_SQLSTATE 非保留 RETURNING 保留 RETURNS 非保留 REUSE 非保留 REVERSE 非保留 REVOKE 非保留 RIGHT 保留(可以是函数或类型) RLIKE 保留 ROLE 非保留 ROLLBACK 非保留 ROLLUP 非保留 ROTATE 非保留 ROUTINE 非保留 ROW 非保留(不能是函数或类型) ROWS 非保留 ROW_COUNT 非保留 ROW_FORMAT 非保留 ROW_NUMBER 保留(可以是函数或类型) RTREE 非保留 SAVEPOINT 非保留 SCHEDULE 非保留 SCHEMA 非保留 SCHEMAS 保留 SCHEMA_NAME 非保留 SCROLL 非保留 SECOND 非保留 SECOND_MICROSECOND 保留 SECONDARY 非保留 SECONDARY_ENGINE 非保留 SECONDARY_ENGINE_ATTRIBUTE 非保留 SECONDARY_LOAD 非保留 SECONDARY_UNLOAD 非保留 SECURITY 非保留 SELECT 保留 SENSITIVE 保留 SEPARATOR 非保留 SEQUENCE 非保留 SERIAL 非保留 SERIALIZABLE 非保留 SERVER 非保留 SESSION 非保留 SET 非保留 SETOF 非保留(不能是函数或类型) SHARE 非保留 SHIPPABLE 非保留 SHOW 非保留 SHUTDOWN 非保留 SIGNAL 保留 SIGNED 非保留 SIMPLE 非保留 SIZE 非保留 SKIP 非保留 SLAVE 非保留 SLICE 非保留 SLICEGROUP 非保留 SLOW 非保留 SMALLDATETIME 非保留(不能是函数或类型) SMALLDATETIME_FORMAT 非保留 SMALLINT 非保留(不能是函数或类型) SNAPSHOT 非保留 SOCKET 非保留 SOME 保留 SONAME 非保留 SOUNDS 非保留 SOURCE 非保留 SOURCE_AUTO_POSITION 非保留 SOURCE_BIND 非保留 SOURCE_COMPRESSION_ALGORITHMS 非保留 SOURCE_CONNECTION_AUTO_FAILOVER 非保留 SOURCE_CONNECT_RETRY 非保留 SOURCE_DELAY 非保留 SOURCE_HEARTBEAT_PERIOD 非保留 SOURCE_HOST 非保留 SOURCE_LOG_FILE 非保留 SOURCE_LOG_POS 非保留 SOURCE_PASSWORD 非保留 SOURCE_PORT 非保留 SOURCE_PUBLIC_KEY_PATH 非保留 SOURCE_RETRY_COUNT 非保留 SOURCE_SSL 非保留 SOURCE_SSL_CA 非保留 SOURCE_SSL_CAPATH 非保留 SOURCE_SSL_CERT 非保留 SOURCE_SSL_CIPHER 非保留 SOURCE_SSL_CRL 非保留 SOURCE_SSL_CRLPATH 非保留 SOURCE_SSL_KEY 非保留 SOURCE_SSL_VERIFY_SERVER_CERT 非保留 SOURCE_TLS_CIPHERSUITES 非保留 SOURCE_TLS_VERSION 非保留 SOURCE_USER 非保留 SOURCE_ZSTD_COMPRESSION_LEVEL 非保留 SPATIAL 保留 SPECIFIC 保留 SPLIT 非保留 SQL 非保留 SQLEXCEPTION 保留 SQLSTATE 保留 SQLWARNNING 保留 SQL_AFTER_GTIDS 非保留 SQL_AFTER_MTS_GAPS 非保留 SQL_BEFORE_GTIDS 非保留 SQL_BIG_RESULT 保留 SQL_BUFFER_RESULT 非保留 SQL_CALC_FOUND_ROWS 保留 SQL_NO_CACHE 保留 SQL_SMALL_RESULT 非保留 SQL_THREAD 非保留 SQL_TSI_DAY 非保留 SQL_TSI_HOUR 非保留 SQL_TSI_MINUTE 非保留 SQL_TSI_MONTH 非保留 SQL_TSI_QUARTER 非保留 SQL_TSI_SECOND 非保留 SQL_TSI_WEEK 非保留 SQL_TSI_YEAR 非保留 SRID 非保留 SSL 保留 STABLE 非保留 STACKED 非保留 START 非保留 STARTING 非保留 STARTS 非保留 STATS_AUTO_RECALC 非保留 STATS_PERSISTENT 非保留 STATS_SAMPLE_PAGES 非保留 STATUS 非保留 STDIN 非保留 STDOUT 非保留 STOP 非保留 STORAGE 非保留 STORED 非保留 STRAIGHT_JOIN 保留 STREAM 非保留 STRICT 非保留 STRING 非保留 SUBCLASS_ORIGIN 非保留 SUBDATE 非保留 SUBJECT 非保留 SUBPARTITION 非保留 SUBPARTITIONS 非保留 SUBSTR 非保留 SUBSTRING 非保留 SUPER 非保留 SUSPEND 非保留 SWAPS 非保留 SWITCHES 非保留 SYSDATE 非保留 SYSTEM 非保留 TABLE 保留 TABLES 非保留 TABLESPACE 非保留 TABLE_CHECKSUM 非保留 TABLE_NAME 非保留 TEMPORARY 非保留 TEMPTABLE 非保留 TERMINATED 非保留 TEXT 非保留(不能是函数或类型) THAN 非保留 THEN 保留 THREAD_PRIORITY 非保留 TIES 非保留 TIME 非保留(不能是函数或类型) TIMESTAMP 非保留(不能是函数或类型) TIMESTAMPADD 非保留 TIMESTAMPDIFF 非保留 TINYBLOB 非保留(不能是函数或类型) TINYINT 非保留(不能是函数或类型) TINYTEXT 非保留(不能是函数或类型) TLS 非保留 TO 保留 TRAILING 保留 TRANSACTION 非保留 TRIGGER 保留 TRIGGERS 非保留 TRIM 非保留 TRUE 保留 TRUNCATE 非保留 TYPE 非保留 TYPES 非保留 UNBOUNDED 非保留 UNCOMMITTED 非保留 UNDEFINED 非保留 UNDO 保留 UNDOFILE 非保留 UNDO_BUFFER_SIZE 非保留 UNICODE 非保留 UNINSTALL 非保留 UNION 保留 UNIQUE 保留 UNKNOWN 非保留 UNLOCK 非保留 UNLOGGED 非保留 UNREGISTER 非保留 UNSIGNED 保留 UNTIL 非保留 UNUSABLE 非保留 UPDATE 非保留 UPGRADE 非保留 URL 非保留 USAGE 非保留 USE 保留 USER 保留 USER_RESOURCES 非保留 USE_FRM 非保留 USING 保留 UTC_DATE 保留 UTC_TIME 保留 UTC_TIMESTAMP 保留 VACUUM 非保留 VALID 非保留 VALIDATION 非保留 VALUE 非保留 VALUES 非保留(不能是函数或类型) VARBINARY 保留 VARCHAR 非保留(不能是函数或类型) VARCHAR2 非保留(不能是函数或类型) VARCHARACTER 非保留(不能是函数或类型) VARIABLES 非保留 VARYING 非保留 VCPU 非保留 VERBOSE 保留(可以是函数或类型) VERSION 非保留 VIEW 非保留 VIRTUAL 保留 VISIBLE 非保留 VOLATILE 非保留 WAIT 非保留 WARNINGS 非保留 WEEK 非保留 WEIGHT_STRING 非保留 WHEN 保留 WHERE 保留 WHILE 保留 WINDOW 保留 WITH 保留 WITHIN 非保留 WITHOUT 非保留 WORKComments 非保留 WRAPPER 非保留 WRITE 保留 X509 非保留 XA 非保留 XID 非保留 XML 非保留 XOR 保留 YEAR 非保留(不能是函数或类型) YEAR_MONTH 保留 ZEROFILL 保留 ZONE 非保留
-
注意事项 LOCK TABLE只能在一个事务块的内部有用,因为锁在事务结束时就会被释放。出现在任意事务块外面的LOCK TABLE都会报错。 如果没有声明锁模式,缺省为最严格的模式WRITE。 没有UNLOCK TABLE命令,锁总是在事务结束时释放。M-Compatibility模式数据库暂不支持UNLOCK TABLE命令。 LOCK TABLE只处理表级的锁,锁与锁之间是否冲突,规则请参见表1。 如果没有打开xc_maintenance_mode参数,那么对系统表申请WRITE级别锁将报错。
-
示例 --创建SCHEMA。 m_db=# CREATE SCHEMA tpcds; --创建表tpcds.reason。 m_db=# CREATE TABLE tpcds.reason ( r_reason_sk INTEGER NOT NULL, r_reason_id CHAR(16) NOT NULL, r_reason_desc INTEGER ); --向表中插入多条记录。 m_db=# INSERT INTO tpcds.reason VALUES (1, 'AAAAAAAABAAAAAAA', '18'),(5, 'AAAAAAAACAAAAAAA', '362'),(7, 'AAAAAAAADAAAAAAA', '585'); m_db=# START TRANSACTION; m_db=# LOCK TABLE tpcds.reason WRITE; m_db=# COMMIT; --删除表。 m_db=# DROP TABLE tpcds.reason; --删除SCHEMA。 m_db=# DROP SCHEMA tpcds;
-
功能描述 LOCK TABLE获取表级锁。 M-Compatibility模式数据库在为一个引用了表的命令自动请求锁时,尽可能选择最小限制的锁模式。如果用户需要一种更为严格的锁模式,可以使用LOCK命令。例如,一个应用是在Read Committed隔离级别上运行事务,并且它需要保证表中的数据在事务的运行过程中不被修改。为实现这个目的,则可以在查询之前对表使用READ锁模式进行锁定。这样将防止数据不被并发修改,从而保证后续的查询可以读到已提交的持久化的数据。因为READ锁模式与任何写操作需要的ROW EXCLUSIVE模式冲突,语句将等到所有当前持有ROW EXCLUSIVE模式锁的事务提交或回滚后才能执行。因此,一旦获得该锁,就不会存在未提交的写操作,并且其他操作也只能等到该锁释放之后才能开始。
-
参数说明 表1 冲突的锁模式 请求的锁模式/当前锁模式 ACCESS SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE READ SHARE ROW EXCLUSIVE EXCLUSIVE WRITE ACCESS SHARE - - - - - - - X ROW SHARE - - - - - - X X ROW EXCLUSIVE - - - - X X X X SHARE UPDATE EXCLUSIVE - - - X X X X X READ - - X X - X X X SHARE ROW EXCLUSIVE - - X X X X X X EXCLUSIVE - X X X X X X X WRITE X X X X X X X X LOCK的参数说明如下所示: table_name 要锁定的表的名称,可以有模式修饰。 LOCK TABLE命令中声明的表的顺序就是上锁的顺序。 取值范围:已存在的表名。 READ SHARE锁允许并发的查询,但是禁止对表进行修改。 CREATE INDEX(不带CONCURRENTLY选项)语句会自动请求这种锁。 WRITE 这个模式保证其所有者(事务)是可以访问该表的唯一事务。 ALTER TABLE、DROP TABLE、TRUNCATE、REINDEX命令会自动请求这种锁。 在LOCK TABLE命令没有明确声明需要的锁模式时,它是缺省锁模式。 ACCESS SHARE ACCESS SHARE锁只允许对表进行读取,而禁止对表进行修改。所有对表进行读取而不修改的SQL语句都会自动请求这种锁。例如,SELECT命令会自动在被引用的表上请求一个ACCESS SHARE锁。 ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE | SHARE ROW EXCLUSIVE | EXCLUSIVE M-Compatibility模式数据库下暂不支持使用LOCK TABLE获取这些模式的锁。 NOWAIT 声明LOCK TABLE不去等待任何冲突的锁释放,如果无法立即获取该锁,该命令退出并且发出一个错误信息。 在不指定NOWAIT的情况下获取表级锁时,如果有其他互斥锁存在的话,则等待其他锁的释放。
-
算术运算符 JSON类型与任意类型的运算操作符支持-、+、*及/运算,返回DOUBLE类型。对于数字类型标量、布尔类型标量和字符串类型标量的JSON类型数据,会转换为相应的DOUBLE类型后进行计算,其他类型的JSON数据无法正常转换。 示例: mydb=# SELECT CAST('true' AS JSON) + CAST('1.5e2' AS JSON); ?column? ---------- 151 (1 row) mydb=# SELECT CAST('"123"' AS JSON) - 1; ?column? ---------- 122 (1 row) mydb=# SELECT CAST('5' AS JSON) / 2; ?column? ---------- 2.5000 (1 row) mydb=# SELECT CAST('3' AS JSON) * 3.33; ?column? ---------- 9.99 (1 row)
-
事务相关SQL 表2 事务相关SQL 功能 相关SQL 回滚当前事务并且撤销所有当前事务中所做的更改。 ROLLBACK 开始一个事务/启动事务。 BEGIN SET TRANSACTION START TRANSACTION 提交当前事务。 COMMIT 删除一个当前事务先前定义的保存点。 RELEASE SAVEPOINT 回滚到一个保存点。 ROLLBACK TO SAVEPOINT 在当前事务里建立一个新的保存点。 SAVEPOINT
-
AES_ENCRYPT AES_ENCRYPT(str, key_str[, init_vector][, kdf_name][, salt][, info | iterations]) 描述:基于AES算法,使用加密口令key_str、初始化向量init_vector和KDF相关选项(kdf_name、salt、info/iterations)对字符串str进行加密。 参数解释: str:需要被加密的字符串。若str为NULL,函数返回NULL。 key_str:加密口令。若key_str为NULL,函数返回NULL。为了安全,对于128bit/192bit/256bit的密钥长度(由块加密模式block_encryption_mode确定),建议用户使用128bit/192bit/256bit的安全随机数作为密钥字符串。 init_vector:为需要它的块加密模式提供初始化变量,长度大于等于16字节(大于16字节的部分会被自动忽略)。str和key_str均不为NULL时,该参数不可为NULL,否则报错。为了安全,建议用户在OFB模式下,保证每次加密IV值的唯一性;在CBC模式和CFB模式下,保证每次加密的IV值不可被预测。 kdf_name:指定使用的KDF算法,取值为PBKDF2或HKDF。 salt:用来与原密码组合生成密钥。 info/iterations:对于HKDF,INFO是该字段指定的info参数。对于PBKDF2,ITERATIONS是该字段指定的迭代次数。 返回值类型:统一返回LONGBLOB类型。 示例: m_db=# SELECT AES_ENCRYPT('huwei123','123456vfhex4dyu,vdaladhjsadad','1234567890123456'); aes_encrypt ------------------- Z_Z\x7F\\x7Fy\x1D (1 row) 由于该函数的执行过程需要传入加密口令,为了安全起见,gsql工具不会将包含该函数名字样的SQL记录入执行历史;即无法在gsql里通过上下翻页功能找到该函数的执行历史。 在存储过程的相关操作中需尽量避免调用该函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在使用包含该函数的存储过程相关操作时,将该函数的参数信息过滤后再提供给外部维护人员定位,日志使用完后请及时删除。 在打开debug_print_plan开关的情况下需尽量避免调用该函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对该函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完后请及时删除。 由于SQL_ASCII设置与其他设置表现得相当不同。如果服务器字符集是SQL_ASCII,服务器把字节值0~127根据 ASCII标准解释,而字节值128~255则当作无法解析的字符。如果设置为SQL_ASCII,就不会有编码转换。该函数调用openssl三方库返回的数据的编码为非ASCII数据,因此当数据库服务端字符集设置为SQL_ASCII时,客户端编码也需设置为SQL_ASCII ,否则会报错。因为数据库不会帮助转换或者校验非ASCII字符。
-
AES_DECRYPT AES_DECRYPT(crypt_str, key_str[, init_vector][, kdf_name][, salt][, info | iterations]) 描述:基于AES算法,使用解密口令key_str、初始化向量init_vector和KDF相关选项(kdf_name、salt、info/iterations)对加密后的字符串crypt_str进行解密。 参数解释: crypt_str:需要被解密的字符串。若crypt_str为NULL,函数返回NULL。 key_str:解密口令。若key_str为NULL,函数返回NULL。为了安全,对于128bit/192bit/256bit的密钥长度(由块加密模式block_encryption_mode确定),建议用户使用128bit/192bit/256bit的安全随机数作为密钥字符串。 init_vector:为需要它的块加密模式提供初始化变量,长度大于等于16字节(大于16字节的部分会被自动忽略)。str和key_str均不为NULL时,该参数不可为NULL,否则报错。为了安全,建议用户在OFB模式下,保证每次加密IV值的唯一性;在CBC模式和CFB模式下,保证每次加密的IV值不可被预测。 kdf_name:指定使用的KDF算法,取值为PBKDF2或HKDF。 salt:用来与原密码组合生成密钥。 info/iterations:对于HKDF,INFO是该字段指定的info参数。对于PBKDF2,ITERATIONS是该字段指定的迭代次数。 返回值类型:统一返回LONGBLOB类型。 示例: m_db=# SELECT AES_DECRYPT(AES_ENCRYPT('huwei123','123456vfhex4dyu','vdaladhjsadadabcdef','hkdf'),'123456vfhex4dyu','vdaladhjsadadabcdef','hkdf'); aes_decrypt ------------- huwei123 (1 row) 由于该函数的执行过程需要传入解密口令,为了安全起见,gsql工具不会将包含该函数名字样的SQL记录入执行历史;即无法在gsql里通过上下翻页功能找到该函数的执行历史。 在存储过程的相关操作中需尽量避免调用该函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在使用包含该函数的存储过程相关操作时,将该函数的参数信息过滤后再提供给外部维护人员定位,日志使用完后请及时删除。 在打开debug_print_plan开关的情况下需尽量避免调用该函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对该函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完后请及时删除。 若想成功解密,需要保证block_encryption_mode,key_str,iv值与加密时一致。 由于编码差异,不支持从gsql客户端直接复制加密后的数据进行解密,此场景解密出的结果不一定是加密前的字符串。 由于SQL_ASCII设置与其他设置表现得相当不同。如果服务器字符集是SQL_ASCII,服务器把字节值0~127根据 ASCII标准解释,而字节值128~255则当作无法解析的字符。如果设置为SQL_ASCII,就不会有编码转换。该函数调用openssl三方库返回的数据的编码为非ASCII数据,因此当数据库服务端字符集设置为SQL_ASCII时,客户端编码也需设置为SQL_ASCII ,否则会报错。因为数据库不会帮助转换或者校验非ASCII字符。
-
PASSWORD PASSWORD(TEXT str_input) 描述:对输入的字符串进行两次SHA-1加密输出。 返回值类型:TEXT 示例: m_db=# SELECT PASSWORD('Gauss'); password ------------------------------------------- *DAC4E366F59D0427EFB4CCE84C7EA705EEA2FCC6 (1 row)
-
参数说明 关键字PUBLIC表示一个隐式定义的拥有所有角色的组。 权限类别和参数说明,请参见GRANT的参数说明。 任何特定角色拥有的特权包括直接授予该角色的特权、从该角色作为其成员的角色中得到的权限以及授予给PUBLIC的权限。因此,从PUBLIC收回SELECT特权并不一定会意味着所有角色都会失去在该对象上的SELECT特权,那些直接被授予的或者通过另一个角色被授予的角色仍然会拥有它。类似地,从一个用户收回SELECT后,如果PUBLIC仍有SELECT权限,该用户还是可以使用SELECT。 指定GRANT OPTION FOR时,只撤销对该权限授权的权力,而不撤销该权限本身。 如用户A拥有某个表的UPDATE权限,及WITH GRANT OPTION选项,同时A把这个权限赋予了用户B,则用户B持有的权限称为依赖性权限。当用户A持有的权限或者授权选项被撤销时,必须声明CASCADE,将所有依赖性权限都撤销。 一个用户只能撤销由它自己直接赋予的权限。例如,如果用户A被指定授权(WITH ADMIN OPTION)选项,且把一个权限赋予了用户B,然后用户B又赋予了用户C,则用户A不能直接将C的权限撤销。但是,用户A可以撤销用户B的授权选项,并且使用CASCADE。这样,用户C的权限就会自动被撤销。另外一个例子:如果A和B都赋予了C同样的权限,则A可以撤销他自己的授权选项,但是不能撤销B的,因此C仍然拥有该权限。 如果执行REVOKE的角色持有的权限是通过多层成员关系获得的,则具体是哪一个包含的角色执行的该命令是不确定的。在这种场合下,建议使用SET ROLE成为特定角色,然后执行REVOKE,否则可能导致删除了不想删除的权限,或者是任何权限都没有删除。
-
语法格式 回收指定表或视图上权限。 REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM }[, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收表上指定字段权限。 REVOKE [ GRANT OPTION FOR ] { {{ SELECT | INSERT | UPDATE | REFERENCES | COMMENT } ( column_name [, ...] )}[, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) } ON [ TABLE ] table_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定序列上权限,LARGE字段属性可选,回收语句不区分序列是否为LARGE。 1 2 3 4 5 6 REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE | ALTER | DROP | COMMENT }[, ...] | ALL [ PRIVILEGES ] } ON { [ [ LARGE ] SEQUENCE ] sequence_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定数据库上权限。 REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; GUC参数m_format_behavior_compat_options开启grant_database_nomapping选项时该语法生效,回收指定的用户或角色对数据库层级对象的访问权限;未开启grant_database_nomapping选项时,REVOKE ON DATABASE映射为REVOKE ON SCHEMA,回收指定的用户或角色对模式层级对象的访问权限,REVOKE ON DATABASE也仅支持REVOKE ON SCHEMA支持的语法选项。 回收指定模式上权限。 REVOKE [ GRANT OPTION FOR ] { { CREATE | USAPRIVILEGEGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 按角色回收角色上的权限。 REVOKE [ ADMIN OPTION FOR ] role_name [, ...] FROM role_name [, ...] [ CASCADE | RESTRICT ]; 回收角色上的sysadmin权限。 REVOKE ALL PRIVILEGES FROM role_name;
-
背景信息 在SQL中,每个数据都与一个决定其行为和用法的数据类型相关。在M-Compatibility里,有四种基本的SQL结构需要独立的类型转换规则。 函数调用 多数SQL类型系统是构筑在一套丰富的函数上的。函数调用可以有一个或多个参数。因为SQL允许函数重载,所以不能通过函数名直接找到要调用的函数,分析器必须根据函数提供的参数类型选择正确的函数。 操作符 SQL允许在表达式上使用前缀或后缀(一元)操作符,也允许表达式内部使用二元操作符(两个参数)。像函数一样,操作符也可以被重载,因此操作符的选择也和函数一样取决于参数类型。 值存储 INSERT和UPDATE语句将表达式结果存入表中。语句中的表达式类型必须和目标字段的类型一致或者可以转换为一致。 UNION,EXCEPT,CASE和相关构造 因为联合SELECT语句中的所有查询结果必须在一列里显示出来,所以每个SELECT子句中的元素类型必须相互匹配并转换成一个统一类型。类似地,一个CASE构造的结果表达式必须转换成统一的类型,这样整个CASE表达式会有一个统一的输出类型。 四种SQL结构在M-Compatibility类型转换规则下分为三种场景:隐式类型转换;显式类型转换;UNION,EXCEPT,CASE和相关构造。M-Compatibility中针对三种场景有不同的转换行为与转换关系。 语义分析阶段会决定表达式的返回值类型并选择适当的转换行为。M-Compatibility数据类型的基本类型分类包括:INTEGER、DECIMAL、STRING、BITSTRING、FLOAT和TEMPORAL。为了解决表达式的类型选择问题,M-Compatibility中每种基本类型之间都存在隐式转换。根据类型与可用的隐式转换,就可能保证有歧义的表达式得到有效的解决方式。
-
基于pymysql开发 pymysql是一个Python库,旨在为数据库提供SQL语句执行的统一访问接口。pymysql提供了诸如客户端游标和服务器端游标、异步通信和通知等功能。pymysql对Unicode的兼容性良好,因此能够处理多种字符编码的数据,确保数据的完整性和准确性。此外,M-Compatibility数据库支持pymysql通过SSL模式进行安全连接,保障数据传输的安全性和可靠性。 开发流程 开发步骤 示例:常用操作 pymysql接口参考 父主题: 应用程序开发教程
-
示例 --创建用户webuser。 m_db=# CREATE USER webuser PASSWORD '********'; --授予用户webuser对模式tpcds下视图的所有操作权限。 m_db=# DO $$DECLARE r record; BEGIN FOR r IN SELECT c.relname table_name,n.nspname table_schema FROM pg_class c,pg_namespace n WHERE c.relnamespace = n.oid AND n.nspname = 'tpcds' AND relkind IN ('r','v') LOOP EXECUTE 'GRANT ALL ON ' || quote_ident(r.table_schema) || '.' || quote_ident(r.table_name) || ' TO webuser'; END LOOP; END$$; --删除用户webuser。 m_db=# DROP USER webuser CASCADE;
-
key_column_usage key_column_usage视图描述了哪些键列具有约束。由于功能键部分的信息是表达式,因此该视图不提供相关内容,该视图仅提供有关列的信息。这个视图为只读,不允许修改。所有用户对这个视图有“读取”权限。 约束:该视图对于表达式约束(包括组合表达式约束)仅显示一条数据,且不显示列名。 表1 information_schema.key_column_usage字段 名称 类型 描述 CONSTRAINT_CATALOG varchar(512) 约束所属目录的名称。该值为当前数据库名。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 CONSTRAINT_SCHEMA varchar(64) 约束所属的Schema名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 CONSTRAINT_NAME varchar(64) 约束的名称。 TABLE_CATALOG varchar(512) 表所属目录的名称。该值为当前数据库名。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 TABLE_SCHEMA varchar(64) 表所属的模式(数据库)的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 TABLE_NAME varchar(64) 具有约束的表的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 COLUMN_NAME varchar(64) 具有约束的列的名称。如果约束是外键,那么这是外键的列,而不是外键引用的列。 ORDINAL_POSITION bigint 列在约束中的位置。从1开始编号。 POSITION_IN_UNIQUE_CONSTRAINT bigint NULL用于唯一和主键约束。对于外键约束,此列是被引用表的键中的序号位置。 REFERENCED_TABLE_SCHEMA varchar(64) 约束引用的schema名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 REFERENCED_TABLE_NAME varchar(64) 约束引用的表的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。 REFERENCED_COLUMN_NAME varchar(64) 约束引用的列的名称。 父主题: Information Schema
-
标识符说明 M-Compatibility标识符的命名需要遵守如下规范: 标识符支持默认使用反引号(``): 当sql_mode设置为ANSI_QUOTES时标识符同时支持反引号(``)和双引号("")。 特殊情况下可以使用引号规避特殊字符报错。 无引号标识符中允许的字符: ASCII:字母(a-zA-Z)、数字(0-9)、下划线(_)、美元符号($)、井号(#)。 扩展:U+0080~U+00FF。 只允许字母、数字、下划线以及U+0080~U+00FF扩展字符作为开头。 有引号标识符中允许的字符: ASCII:U+0001~U+007F。 扩展:U+0080~U+FFFF。 标识符不支持使用U+0000或U+10000以上编码的字符。 标识符支持以数字开头,但不能全部由数字组成,除非在引号标识符中。 M-Compatibility标识符的大小写敏感情况如下: 在GUC参数lower_case_table_names为0时,完全区分大小写的标识符有库、Schema、表、视图,在创建和使用的过程中,严格区分大小写。 在GUC参数lower_case_table_names为1时,库、Schema、表(包括auto_increment自增列生成的序列名)、视图,在创建和使用的时候不区分大小写,且在反引号或双引号包裹以上对象时也不区分大小写。 列名存储区分大小写,比较时候不区分大小写。列名存储在内部按照真实的大小写存储,而正常使用则不区分大小写。 其余标识符: 在内部是全小写的,如果标识符使用双引号(需要设置SQL_MODE为ANSI_QUOTES)或反引号,则区分大小写。 如果指定Schema或者Table修饰时,在GUC参数lower_case_table_names为0时,Schema和Table是区分大小写的;在GUC参数lower_case_table_names为1时,Schema和Table不区分大小写。 父主题: SQL语法
-
java.sql.Statement java.sql.Statement是SQL语句接口,具体信息如表1所示。 表1 对java.sql.Statement的支持情况 方法名 返回值类型 支持JDBC4 addBatch(String sql) VOID Yes clearBatch() VOID Yes clearWarnings() VOID Yes close() VOID Yes closeOnCompletion() VOID Yes execute(String sql) BOOLEAN Yes execute(String sql, int autoGeneratedKeys) BOOLEAN Yes execute(String sql, int[] columnIndexes) BOOLEAN Yes execute(String sql, String[] columnNames) BOOLEAN Yes executeBatch() BOOLEAN Yes executeQuery(String sql) RESULTSET Yes executeUpdate(String sql) INT Yes executeUpdate(String sql, int autoGeneratedKeys) INT Yes executeUpdate(String sql, int[] columnIndexes) INT Yes executeUpdate(String sql, String[] columnNames) INT Yes getConnection() CONNECTION Yes getFetchDirection() INT Yes getFetchSize() INT Yes getGeneratedKeys() RESULTSET Yes getMaxFieldSize() INT Yes getMaxRows() INT Yes getMoreResults() BOOLEAN Yes getMoreResults(int current) BOOLEAN Yes getResultSet() RESULTSET Yes getResultSetConcurrency() INT Yes getResultSetHoldability() INT Yes getResultSetType() INT Yes getQueryTimeout() INT Yes getUpdateCount() INT Yes getWarnings() SQLWARNING No isClosed() BOOLEAN Yes isCloseOnCompletion() BOOLEAN Yes isPoolable() BOOLEAN Yes setCursorName(String name) VOID Yes setEscapeProcessing(boolean enable) VOID Yes setFetchDirection(int direction) VOID Yes setMaxFieldSize(int max) VOID No setMaxRows(int max) VOID No setPoolable(boolean poolable) VOID Yes setQueryTimeout(int seconds) VOID Yes setFetchSize(int rows) VOID Yes cancel() VOID No executeLargeUpdate(String sql) LONG Yes getLargeUpdateCount() LONG Yes executeLargeBatch() LONG Yes executeLargeUpdate(String sql, int autoGeneratedKeys) LONG Yes executeLargeUpdate(String sql, int[] columnIndexes) LONG Yes executeLargeUpdate(String sql, String[] columnNames) LONG Yes 父主题: JDBC接口参考
-
示例 显示用字符串输出位串类型。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 --创建表。 m_db=# CREATE TABLE bit_type_t1 ( BIT_COL BIT(64) ); -- 插入数据。 m_db=# INSERT INTO bit_type_t1 VALUES (b'101'); -- 查询表中数据。 m_db=# SELECT * FROM bit_type_t1; bit_col --------- 101 (1 row) --删除表。 m_db=# DROP TABLE bit_type_t1; --创建表。 m_db=# CREATE TABLE bit_type_t2 ( BIT_COL BIT(3) ); --严格模式下插入的数据长度超过类型规定的长度报错。 m_db=# SET SQL_MODE = 'strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero, no_auto_create_user,no_engine_substitution'; SET m_db=# INSERT INTO bit_type_t2 VALUES (b'10101'); ERROR: bit string too long for type bit varying(3) CONTEXT: referenced column: bit_col --宽松模式下插入的数据长度超过类型规定的长度提示warning,数据取长度内最大值插入。 m_db=# SET SQL_MODE = ''; SET m_db=# INSERT INTO bit_type_t2 VALUES (b'10101'); WARNING: bit string too long for type bit varying(3) CONTEXT: referenced column: bit_col INSERT 0 1 --查询表中的数据。 m_db=# SELECT * FROM bit_type_t2; bit_col --------- 111 (1 row) --删除表。 m_db=# DROP TABLE bit_type_t2;
共91794条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- ...
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3059