From 56187a640196f58715413749a9619fd7d715c875 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Sat, 20 Aug 2022 22:32:58 +0800 Subject: [PATCH 1/8] add blog --- content/zh/post/wzr/wzr1.md | 56 ++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/content/zh/post/wzr/wzr1.md b/content/zh/post/wzr/wzr1.md index eb2968e0..1abdb545 100644 --- a/content/zh/post/wzr/wzr1.md +++ b/content/zh/post/wzr/wzr1.md @@ -1 +1,55 @@ -**+++**
**title="openGauss社区入门(opengauss-逻辑备份命令)"**
**date="2022-08-19"**
**tags=["openGauss社区开发入门"]**
**archives=“2022-08”**
**author=“wangrururu”**
**summary="openGauss社区开发入门"**
**img="/zh/post/wzr/title/title.jpg"**
**times="19:15"**
**+++**
openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息:
•导出表全量信息,包含表数据和表定义。
•仅导出数据,不包含表定义。
•仅导出表定义。
1.常用参数
(1)-U 连接数据库的用户名。
(2)-W 指定用户连接的密码。
(3)-f 将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。
(4)-p 指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。
(5)dbname 需要导出的数据库名称。
(6)-t 指定导出的表(或视图、序列、外表),可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。
(7)-F 选择导出文件格式。-F参数值如下:
•p:纯文本格式
•c:自定义归档
•d:目录归档格式
•t:tar归档格式
(8)-T 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。
2.示例
(1)导出表的定义和数据,导出文件格式为文本格式。
gs_dump -f /home/opengauss300_0708/backup/m.sql -p 3436 postgres -t dd1 -F p
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908148094-ccb6939f-cffd-4b41-9440-454eaf8361d6.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=43&id=u6997755e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=54&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65145&status=done&style=none&taskId=u74d1d0f3-090f-4bfd-bca1-dab80f3922d&title=&width=443.2)
(2)只导出表的数据,导出文件格式为tar归档格式。
gs_dump -f /home/opengauss300_0708/backup/m.tar -p 3436 postgres -t dd1 -a -F t
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908162097-b217e7c4-7e67-49b1-98c8-69f796b746b8.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=27&id=u43cdc23b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=34&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37232&status=done&style=none&taskId=u88ffe901-057c-4233-bfe7-476253371a8&title=&width=443.2)
(3)导出表的定义,导出文件格式为目录归档格式。
gs_dump -f /home/opengauss300_0708/backup/m -p 3436 postgres -t dd1 -s -F d
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908175403-885cce65-9c45-4b9f-a81d-1915d84fa625.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=ub7383955&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64834&status=done&style=none&taskId=u1730ce70-058a-46b9-a0ee-6f957e076ce&title=&width=443.2)
(4)不导出表,导出文件格式为自定义归档格式。
gs_dump -f /home/opengauss300_0708/backup/m.dmp -p 3436 postgres -T dd1 -F c
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908186579-1a0bc9e4-bc4f-4b11-b61b-99f9643bebc1.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=u37964949&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65317&status=done&style=none&taskId=u86606486-7061-4325-b722-5facd291159&title=&width=443.2)
(5)同时导出两个表,导出文件格式为文本格式。
gs_dump -f /home/opengauss300_0708/backup/m1.sql -p 3436 postgres -t dd1 -t dd2 -F p
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908193429-7b55a105-21d5-4403-bc8b-0ce1a2f6cc6a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=41&id=u3441ebac&margin=%5Bobject%20Object%5D&name=image.png&originHeight=51&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=56558&status=done&style=none&taskId=u14bc59fa-7f8f-474a-8892-cef500dec5d&title=&width=443.2)
(6)导出时,排除两个表,导出文件格式为文本格式。
gs_dump -f /home/opengauss300_0708/backup/m2.sql -p 3436 postgres -T dd1 -T dd2 -F p
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908202991-7917b5b2-dbc4-453c-a672-4bcaf6ca17e4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=39&id=u4bec73f4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=49&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=58012&status=done&style=none&taskId=ube29a4c1-9098-426f-a22a-c880526dbb1&title=&width=443.2)
(7)导出表1的定义和数据,只导出表2的定义,导出文件格式为tar归档格式。
gs_dump -f /home/opengauss300_0708/backup/m3.tar -p 3436 postgres -t dd1 -t dd2 --exclude-table-data dd2 -F t
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908214236-508c8634-0957-4f5f-959b-bd8be7d76fc3.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=33&id=uab5304a9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=41&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43063&status=done&style=none&taskId=u616f3469-2577-4f69-a76b-915ec94d682&title=&width=443.2)
(8)导出表的定义和数据,并对导出文件进行加密,导出文件格式为文本格式。
gs_dump -f /home/opengauss300_0708/backup/m4.sql -p 3436 postgres -t dd1 --with-encryption AES128 --with-key abcdefg_?1234567 -F p
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908222439-01895d2b-b756-4db1-a6c5-9157ce3a157a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=36&id=u1e54b1e4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=45&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40671&status=done&style=none&taskId=uf2d174ee-05ae-43b0-b3d4-7ea502f72ed&title=&width=443.2)
(9)导出public模式下所有表(包括视图、序列和外表)和自定义模式中的表,包含数据和表定义,导出文件格式为自定义归档格式。
gs_dump -f /home/opengauss300_0708/backup/m5.dmp -p 3436 postgres -t public.* -t myschema.dd1 -F c
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908230084-ce873cb7-dc6a-4c97-84b7-3412c670a9a4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=37&id=u5d51992e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=46&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=50842&status=done&style=none&taskId=ud926a090-a7be-425b-8491-aac913d82ca&title=&width=443.2) +**+++** +**title="openGauss社区入门(opengauss-逻辑备份命令)"** +**date="2022-08-19"** +**tags=["openGauss社区开发入门"]** +**archives=“2022-08”** +**author=“wangrururu”** +**summary="openGauss社区开发入门"** +**img="/zh/post/wzr/title/title.jpg"** +**times="19:15"** +**+++** +openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息: +•导出表全量信息,包含表数据和表定义。 +•仅导出数据,不包含表定义。 +•仅导出表定义。 +1.常用参数 +(1)-U 连接数据库的用户名。 +(2)-W 指定用户连接的密码。 +(3)-f 将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。 +(4)-p 指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。 +(5)dbname 需要导出的数据库名称。 +(6)-t 指定导出的表(或视图、序列、外表),可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 +(7)-F 选择导出文件格式。-F参数值如下: +•p:纯文本格式 +•c:自定义归档 +•d:目录归档格式 +•t:tar归档格式 +(8)-T 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 +2.示例 +(1)导出表的定义和数据,导出文件格式为文本格式。 +gs_dump -f /home/opengauss300_0708/backup/m.sql -p 3436 postgres -t dd1 -F p +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908148094-ccb6939f-cffd-4b41-9440-454eaf8361d6.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=43&id=u6997755e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=54&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65145&status=done&style=none&taskId=u74d1d0f3-090f-4bfd-bca1-dab80f3922d&title=&width=443.2) +(2)只导出表的数据,导出文件格式为tar归档格式。 +gs_dump -f /home/opengauss300_0708/backup/m.tar -p 3436 postgres -t dd1 -a -F t +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908162097-b217e7c4-7e67-49b1-98c8-69f796b746b8.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=27&id=u43cdc23b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=34&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37232&status=done&style=none&taskId=u88ffe901-057c-4233-bfe7-476253371a8&title=&width=443.2) +(3)导出表的定义,导出文件格式为目录归档格式。 +gs_dump -f /home/opengauss300_0708/backup/m -p 3436 postgres -t dd1 -s -F d +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908175403-885cce65-9c45-4b9f-a81d-1915d84fa625.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=ub7383955&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64834&status=done&style=none&taskId=u1730ce70-058a-46b9-a0ee-6f957e076ce&title=&width=443.2) +(4)不导出表,导出文件格式为自定义归档格式。 +gs_dump -f /home/opengauss300_0708/backup/m.dmp -p 3436 postgres -T dd1 -F c +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908186579-1a0bc9e4-bc4f-4b11-b61b-99f9643bebc1.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=u37964949&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65317&status=done&style=none&taskId=u86606486-7061-4325-b722-5facd291159&title=&width=443.2) +(5)同时导出两个表,导出文件格式为文本格式。 +gs_dump -f /home/opengauss300_0708/backup/m1.sql -p 3436 postgres -t dd1 -t dd2 -F p +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908193429-7b55a105-21d5-4403-bc8b-0ce1a2f6cc6a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=41&id=u3441ebac&margin=%5Bobject%20Object%5D&name=image.png&originHeight=51&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=56558&status=done&style=none&taskId=u14bc59fa-7f8f-474a-8892-cef500dec5d&title=&width=443.2) +(6)导出时,排除两个表,导出文件格式为文本格式。 +gs_dump -f /home/opengauss300_0708/backup/m2.sql -p 3436 postgres -T dd1 -T dd2 -F p +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908202991-7917b5b2-dbc4-453c-a672-4bcaf6ca17e4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=39&id=u4bec73f4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=49&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=58012&status=done&style=none&taskId=ube29a4c1-9098-426f-a22a-c880526dbb1&title=&width=443.2) +(7)导出表1的定义和数据,只导出表2的定义,导出文件格式为tar归档格式。 +gs_dump -f /home/opengauss300_0708/backup/m3.tar -p 3436 postgres -t dd1 -t dd2 --exclude-table-data dd2 -F t +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908214236-508c8634-0957-4f5f-959b-bd8be7d76fc3.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=33&id=uab5304a9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=41&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43063&status=done&style=none&taskId=u616f3469-2577-4f69-a76b-915ec94d682&title=&width=443.2) +(8)导出表的定义和数据,并对导出文件进行加密,导出文件格式为文本格式。 +gs_dump -f /home/opengauss300_0708/backup/m4.sql -p 3436 postgres -t dd1 --with-encryption AES128 --with-key abcdefg_?1234567 -F p +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908222439-01895d2b-b756-4db1-a6c5-9157ce3a157a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=36&id=u1e54b1e4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=45&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40671&status=done&style=none&taskId=uf2d174ee-05ae-43b0-b3d4-7ea502f72ed&title=&width=443.2) +(9)导出public模式下所有表(包括视图、序列和外表)和自定义模式中的表,包含数据和表定义,导出文件格式为自定义归档格式。 +gs_dump -f /home/opengauss300_0708/backup/m5.dmp -p 3436 postgres -t public.* -t myschema.dd1 -F c +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908230084-ce873cb7-dc6a-4c97-84b7-3412c670a9a4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=37&id=u5d51992e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=46&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=50842&status=done&style=none&taskId=ud926a090-a7be-425b-8491-aac913d82ca&title=&width=443.2) -- Gitee From e87330f32d753af8684774791ce1bf662bfbd8db Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 26 Aug 2022 21:12:36 +0800 Subject: [PATCH 2/8] add blog --- ...16\345\210\227\345\255\230\350\241\250.md" | 236 ++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 "content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" diff --git "a/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" "b/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" new file mode 100644 index 00000000..c0f72760 --- /dev/null +++ "b/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" @@ -0,0 +1,236 @@ +**+++** +**title="openGauss社区入门(opengauss-行存表与列存表)"** +**date="2022-08-26"** +**tags=["openGauss社区开发入门"]** +**archives=“2022-08”** +**author=“wangrururu”** +**summary="openGauss社区开发入门"** +**img="/zh/post/wzr/title/title.jpg"** +**times="21:15"** +**+++** +1.行式存储和列式存储的区别: +(1)行式存储倾向于结构固定,列式存储倾向于结构弱化。 +(2)行式存储一行数据仅需要一个主键,列式存储一行数据需要多份主键。 +(3)行式存储的是业务数据,而列式存储除了业务数据之外,还需要存储列名。 +(4)行式存储更像是一个Java Bean,所有的字段都提前定义好,且不能改变;列式存储更像是一个Map,不提前定义,随意往里面添加key/value。 +2.列存表 +(1)列存表支持的数据类型: + +| 类别 | 类型 | 长度 | +| --- | --- | --- | +| Numeric Types | smallint | 2 | +| | integer | 4 | +| | bigint | 8 | +| | decimal | -1 | +| | numeric | -1 | +| | real | 4 | +| | double precision | 8 | +| | smallserial | 2 | +| | serial | 4 | +| | bigserial | 8 | +| | largeserial | -1 | +| Monetary Types | money | 8 | +| Character Types | character varying(n), varchar(n) | -1 | +| | character(n), char(n) | n | +| | character、char | 1 | +| | text | -1 | +| | nvarchar | -1 | +| | nvarchar2 | -1 | +| Date/Time Types | timestamp with time zone | 8 | +| | timestamp without time zone | 8 | +| | date | 4 | +| | time without time zone | 8 | +| | time with time zone | 12 | +| | interval | 16 | +| big object | clob | -1 | + +(2)列存表的特性 +•列存表不支持数组。 +•列存表不支持生成列。 +•列存表不支持创建全局临时表。 +•创建列存表的数量建议不超过1000个。 +•列存表的表级约束只支持PARTIAL CLUSTER KEY、UNIQUE、PRIAMRY KEY,不支持外键等表级约束。 +•列存表的字段约束只支持NULL、NOT NULL和DEFAULT常量值、UNIQUE和PRIMARY KEY。 +•列存表支持delta表,受参数enable_delta_store控制是否开启,受参数deltarow_threshold控制进入delta表的阀值。 +(3)创建一个列存表 +CREATE TABLE test1 +( +W_WAREHOUSE_SK INTEGER NOT NULL, +W_WAREHOUSE_ID CHAR(16) NOT NULL, +W_WAREHOUSE_NAME VARCHAR(20) , +W_WAREHOUSE_SQ_FT INTEGER , +W_GMT_OFFSET DECIMAL(5,2) +) WITH (ORIENTATION = COLUMN); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518898335-3be220a1-69fb-4292-be7c-a115e34356f2.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=100&id=u28e8b84e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=125&originWidth=513&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64447&status=done&style=none&taskId=u8e8f7340-d58c-4894-9158-1791b3d8273&title=&width=410.4) +(4)创建局部聚簇存储的列存表。 +CREATE TABLE test2 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2), +    PARTIAL CLUSTER KEY(W_WAREHOUSE_SK, W_WAREHOUSE_ID) +) WITH (ORIENTATION = COLUMN); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518908685-4ebee929-6238-4c75-a0eb-f148bf4505e8.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=98&id=u76be3295&margin=%5Bobject%20Object%5D&name=image.png&originHeight=122&originWidth=507&originalType=binary&ratio=1&rotation=0&showTitle=false&size=74437&status=done&style=none&taskId=ubecdf8a9-ed98-4d88-b92f-5937002847a&title=&width=405.6) +(5) 创建一个带压缩的列存表。 +CREATE TABLE test3 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +) WITH (ORIENTATION = COLUMN, COMPRESSION=HIGH); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518921111-71682e07-237b-4372-bd16-fffde14ccab1.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=u5258b083&margin=%5Bobject%20Object%5D&name=image.png&originHeight=112&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=66732&status=done&style=none&taskId=ud59e5c00-ad9b-46c3-8cf7-a07cc588b12&title=&width=443.2) +3.行存表 +(1)创建一个行存表 +CREATE TABLE test4 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +); +(2)创建表,并指定W_STATE字段的缺省值为GA。 +CREATE TABLE test5 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_STATE                   CHAR(2)           DEFAULT 'GA', +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518934802-145aa5b0-d075-4de6-a91a-e951ce8a4b73.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=106&id=uaaa13f31&margin=%5Bobject%20Object%5D&name=image.png&originHeight=133&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=69257&status=done&style=none&taskId=u50bd89e0-f8ac-41ad-bf87-e8f1c399768&title=&width=443.2) +(3)创建表,并在事务结束时检查W_WAREHOUSE_NAME字段是否有重复。 +CREATE TABLE test6 +( +    W_WAREHOUSE_SK            INTEGER                NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)   UNIQUE DEFERRABLE, +    W_WAREHOUSE_SQ_FT         INTEGER                        , +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518945990-1646d8f8-3d1c-41e9-ba4c-bde07955e429.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=85&id=ue79da1ab&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=466&originalType=binary&ratio=1&rotation=0&showTitle=false&size=51194&status=done&style=none&taskId=u2e6c541d-8c2a-4629-a0d0-c3cfc72a887&title=&width=372.8) +(4)创建一个带有70%填充因子的表 +CREATE TABLE test7 +( +    W_WAREHOUSE_SK            INTEGER                NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                    , +    W_WAREHOUSE_SQ_FT         INTEGER                        , +    W_GMT_OFFSET              DECIMAL(5,2), +    UNIQUE(W_WAREHOUSE_NAME) WITH(fillfactor=70) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518956618-6ab138e9-0d76-4e5e-8fcc-9033e8d1c7c8.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=85&id=u746c5837&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=514&originalType=binary&ratio=1&rotation=0&showTitle=false&size=51127&status=done&style=none&taskId=u24d96820-985d-43b6-b9d8-5ef323163d9&title=&width=411.2) +CREATE TABLE test8 +( +    W_WAREHOUSE_SK            INTEGER                NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)              UNIQUE, +    W_WAREHOUSE_SQ_FT         INTEGER                        , +    W_GMT_OFFSET              DECIMAL(5,2) +) WITH(fillfactor=70); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518966782-0fa0830e-71e3-4991-be34-131a9f0b407b.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=92&id=ud23cb1c4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=115&originWidth=490&originalType=binary&ratio=1&rotation=0&showTitle=false&size=57819&status=done&style=none&taskId=ue723a32a-0442-4d0b-842b-2daace51f53&title=&width=392) +(5)创建表,并指定该表数据不写入预写日志 +CREATE UNLOGGED TABLE test9 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518984653-9ad83082-e5c6-425e-8c56-02a0d4c84dfc.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=92&id=ud8c796b0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=115&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=66341&status=done&style=none&taskId=u1c730ccb-8204-4f87-adab-6e646caf8dd&title=&width=443.2) +(6)创建临时表 +CREATE TEMPORARY TABLE test10 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518995881-7ba6164b-d0a2-4a1c-9eda-6260d04d7dd4.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=96&id=ud10793d3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=120&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=75111&status=done&style=none&taskId=u2760ff8e-9ef2-43f9-9011-3c7a07c1448&title=&width=443.2) +(7)创建本地临时表,并指定提交事务时删除该临时表数据 +CREATE TEMPORARY TABLE test11 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +) ON COMMIT DELETE ROWS; +(8)创建全局临时表,并指定会话结束时删除该临时表数据 +CREATE GLOBAL TEMPORARY TABLE test12 +( +    ID                        INTEGER               NOT NULL, +    NAME                      CHAR(16)              NOT NULL, +    ADDRESS                   VARCHAR(50)                   +) ON COMMIT PRESERVE ROWS; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519010652-ac7c8047-6cee-466c-acad-57c27b00940c.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=u5109164f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=63390&status=done&style=none&taskId=u64492ade-2c96-4012-a9d9-e2b49be9848&title=&width=443.2) +(9)创建表时,不希望因为表已存在而报错 +CREATE TABLE IF NOT EXISTS test13 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +); +(10)创建普通表空间 +CREATE TABLESPACE DS_TABLESPACE1 RELATIVE LOCATION 'tablespace/tablespace_1'; +(11)创建表时,指定表空间 +CREATE TABLE test14 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +) TABLESPACE DS_TABLESPACE1; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519039606-a8df8d5f-216f-4644-b01b-5121c79a5ec5.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=122&id=ud2149e44&margin=%5Bobject%20Object%5D&name=image.png&originHeight=153&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=87174&status=done&style=none&taskId=ud52a0005-0219-4b84-bc3f-9ca4cd7f0e7&title=&width=443.2) +(12)创建表时,单独指定W_WAREHOUSE_NAME的索引表空间 +CREATE TABLE test15 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME        VARCHAR(20)  UNIQUE USING INDEX TABLESPACE DS_TABLESPACE1, +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519048330-aaaacebb-f60e-42f0-82fe-5c65c09366fc.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=68&id=ufe700790&margin=%5Bobject%20Object%5D&name=image.png&originHeight=85&originWidth=479&originalType=binary&ratio=1&rotation=0&showTitle=false&size=39085&status=done&style=none&taskId=ud5977774-9979-4988-a13e-13d9cffb0f4&title=&width=383.2) +(13)创建一个有主键约束的表 +CREATE TABLE test16 +( +    W_WAREHOUSE_SK            INTEGER            PRIMARY KEY, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519059383-3abf4ae2-08fb-4387-b78b-119aca96d583.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=83&id=u210de4a1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=104&originWidth=416&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45413&status=done&style=none&taskId=ud3daa046-5474-459f-9d4d-4415bbc6cfe&title=&width=332.8) +(14) 创建一个有复合主键约束的表 +CREATE TABLE test17 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME          VARCHAR(20)                   , +    CONSTRAINT W_CSTR_KEY2 PRIMARY KEY(W_WAREHOUSE_SK,W_WAREHOUSE_ID) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519068712-cfca0144-171c-4dd7-96f4-a0469386a831.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=99&id=uf589cf2c&margin=%5Bobject%20Object%5D&name=image.png&originHeight=124&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71994&status=done&style=none&taskId=u46facacf-96f6-456c-bc29-d654d054f6d&title=&width=443.2) +(15) 定义一个检查列约束 +CREATE TABLE test18 +( +    W_WAREHOUSE_SK        INTEGER       PRIMARY KEY CHECK (W_WAREHOUSE_SK > 0), +    W_WAREHOUSE_ID       CHAR(16)              NOT NULL, +    W_WAREHOUSE_NAME    VARCHAR(20)    CHECK (W_WAREHOUSE_NAME IS NOT NULL), +    W_GMT_OFFSET              DECIMAL(5,2) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519080200-21a1f915-8e29-4a02-a206-69976fe06913.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=117&id=u7fcb107f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=146&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=80452&status=done&style=none&taskId=u45180761-22c0-4bc5-abe9-8b3cc5e23a1&title=&width=443.2) +(16) 创建一个有外键约束的表 +CREATE TABLE tt +( +    W_CITY            VARCHAR(60)                PRIMARY KEY, +    W_ADDRESS       TEXT                     +); +CREATE TABLE test19 +( +    W_WAREHOUSE_SK            INTEGER               NOT NULL, +    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, +    W_CITY                    VARCHAR(60)                   , +    FOREIGN KEY(W_CITY) REFERENCES tt (W_CITY) +); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519092627-0efa89fe-8204-4324-ae3e-b42839914190.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=115&id=u675c96c7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=144&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=86683&status=done&style=none&taskId=u7b14ff45-96fd-4463-bbe4-5c47469836e&title=&width=443.2) +  -- Gitee From d91896865f5f459ec6a30d61aa72d2cedc0ded85 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Wed, 31 Aug 2022 12:21:25 +0800 Subject: [PATCH 3/8] add blog --- ...70\345\205\263\346\223\215\344\275\234.md" | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 "content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" diff --git "a/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" "b/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" new file mode 100644 index 00000000..5bd4c15b --- /dev/null +++ "b/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" @@ -0,0 +1,68 @@ +**+++** +**title="openGauss社区入门(opengauss-ddl相关操作)"** +**date="2022-08-31"** +**tags=["openGauss社区开发入门"]** +**archives=“2022-08”** +**author=“wangrururu”** +**summary="openGauss社区开发入门"** +**img="/zh/post/wzr/title/title.jpg"** +**times="12:08"** +**+++** +**1. 定义** +修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。 +**2. 注意事项** +•表的所有者、被授予表ALTER权限的用户或被授予ALTER ANY TABLE的用户有权限执行ALTER TABLE命令,系统管理员默认拥有此权限。但要修改表的所有者或者修改表的模式,当前用户必须是该表的所有者或者系统管理员,且该用户是新的所有者角色的成员。 +•不能修改分区表的tablespace,但可以修改分区的tablespace。 +•不支持修改存储参数ORIENTATION。 +•SET SCHEMA操作不支持修改为系统内部模式,当前仅支持用户模式之间的修改。 +•列存表只支持PARTIAL CLUSTER KEY、UNIQUE、PRIMARY KEY表级约束,不支持外键等表级约束。 +•列存表只支持添加字段ADD COLUMN、修改字段的数据类型ALTER TYPE、设置单个字段的收集目标SET STATISTICS、支持更改表名称、支持更改表空间,支持删除字段DROP COLUMN。对于添加的字段和修改的字段类型要求是列存支持的数据类型。ALTER TYPE的USING选项只支持常量表达式和涉及本字段的表达式,暂不支持涉及其他字段的表达式。 +•列存表支持的字段约束包括NULL、NOT NULL和DEFAULT常量值、UNIQUE和PRIMARY KEY;对字段约束的修改当前只支持对DEFAULT值的修改(SET DEFAULT)和删除(DROP DEFAULT),暂不支持对非空约束NULL/NOT NULL的修改。 +•不支持增加自增列,或者增加DEFAULT值中包含nextval()表达式的列。 +•不支持对外表、临时表开启行访问控制开关。 +•通过约束名删除PRIMARY KEY约束时,不会删除NOT NULL约束,如果有需要,请手动删除NOT NULL约束。 +•使用JDBC时,支持通过PrepareStatement对DEFAUTL值进行参数化设置。 +**3. 语法** +ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name ) } +action [, ... ]; +**4. 参数说明** +IF EXISTS +如果不存在相同名称的表,不报错,而会发出一个通知,告知表不存在。 +•table_name [*] | ONLY table_name | ONLY ( table_name ) +table_name是需要修改的表名。若声明了ONLY选项,则只有该表被更改。若未声明,该表及其所有子表都会被更改。 +**(1)给表增加一列** +alter table t1 add col3 varchar(30); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918946872-a12828b2-5d13-4df9-aeee-e33a3b228b4a.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=81&id=u310f7ca7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=101&originWidth=354&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43294&status=done&style=none&taskId=u9595cacd-0279-4fde-af49-faa168c3018&title=&width=283.2) +**(2)给表增加一个检查约束** +alter table t1 add constraint w1 check (col1 is not null); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918958169-d98c0dbf-fc94-494a-8cba-1b60bd7d4c18.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ud9827424&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=337&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43393&status=done&style=none&taskId=u1b815fd4-822c-4378-97f2-8ea8ac07c00&title=&width=269.6) +**(3)在一个操作中改变两个现存字段的类型。** +alter table t1 alter column col1 type varchar(80),alter column col2 type varchar(100); +或 +alter table t1 modify (col1 varchar(30), col2 varchar(60)); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918967892-dabef134-38c7-4d69-ab0a-597b9baf5099.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ubcbe5dea&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=322&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45460&status=done&style=none&taskId=u40308184-95fa-4b1e-9c26-6fced9aaa37&title=&width=257.6) +**(4)给一个已存在字段添加非空约束。** +alter table t1 alter column col3 set not null; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918977343-e841a668-9eb4-4d23-8043-c185a946fa80.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u47eed9fd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=283&originalType=binary&ratio=1&rotation=0&showTitle=false&size=38979&status=done&style=none&taskId=ud8b6060c-fed1-4dd0-bf9e-6095a0d68ac&title=&width=226.4) +**(5)移除已存在字段的非空约束。** +alter table t1 alter column col3 drop not null; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918990278-947e5ab7-bf51-40c6-b6c6-084e3c51544c.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u0fd9c3c8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=280&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40426&status=done&style=none&taskId=ub3d7b183-a4fb-4607-829e-7332901198a&title=&width=224) +(6)在一个列存表中添加局部聚簇列。 +alter table t2 add partial cluster key(col1); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919001947-3cdb90cb-3a6c-4030-bd33-72d45eeb9326.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u42eefe75&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=435&originalType=binary&ratio=1&rotation=0&showTitle=false&size=41740&status=done&style=none&taskId=u8afce973-683b-43d9-b93c-7edc011bce6&title=&width=348) +(7)删除一个列存表中的局部聚簇列。 +alter table t2 drop constraint t2_cluster; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919011200-a5911aa8-44c1-45ef-9d91-5d8810220df3.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=68&id=u5927a8e8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=85&originWidth=304&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32101&status=done&style=none&taskId=u753671b4-9984-4ef8-9816-8b80e7537db&title=&width=243.2) +(8)将表移动到另一个表空间。 +alter table t2 set tablespace example1; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919019660-53acad63-758a-47e8-a2a8-c25d60575803.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=79&id=uce2ab77f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=99&originWidth=339&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37404&status=done&style=none&taskId=u57900c94-e41e-4134-8b19-7ac4cac288a&title=&width=271.2) +(9)创建模式wzr,将表移动到该模式中。 +create schema wzr; +alter table t2 set schema wzr; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919028296-77b17688-9061-4780-9491-7a9af23b2bf5.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=76&id=u830b0662&margin=%5Bobject%20Object%5D&name=image.png&originHeight=95&originWidth=295&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32604&status=done&style=none&taskId=u0a41d3ed-287d-452d-85aa-a6178faf7bc&title=&width=236) +(10)重命名已存在的表 +alter table wzr.t2 rename to testwzr; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919038424-aa42867a-7d3e-4bdd-983a-77f577038182.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=98&id=u364debb4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=123&originWidth=415&originalType=binary&ratio=1&rotation=0&showTitle=false&size=53738&status=done&style=none&taskId=uc39e6393-19ca-44be-aeec-38319d3d107&title=&width=332) +(11)从表中删除一个字段。 +alter table wzr.testwzr drop column col3; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919051707-3c4718d7-c44b-43bf-967f-50e499bdde8f.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=86&id=ue0569f65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=108&originWidth=350&originalType=binary&ratio=1&rotation=0&showTitle=false&size=46175&status=done&style=none&taskId=ucb3256a0-3b69-42ba-998b-f08ddbf0615&title=&width=280) -- Gitee From cb7d2d94fd1a582e70a160fb954133d0e187d8f5 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 2 Sep 2022 10:18:10 +0800 Subject: [PATCH 4/8] add blog --- ...70\345\205\263\346\223\215\344\275\234.md" | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 "content/zh/post/wzr/opengauss-ddl\347\232\204\347\233\270\345\205\263\346\223\215\344\275\234.md" diff --git "a/content/zh/post/wzr/opengauss-ddl\347\232\204\347\233\270\345\205\263\346\223\215\344\275\234.md" "b/content/zh/post/wzr/opengauss-ddl\347\232\204\347\233\270\345\205\263\346\223\215\344\275\234.md" new file mode 100644 index 00000000..5bd4c15b --- /dev/null +++ "b/content/zh/post/wzr/opengauss-ddl\347\232\204\347\233\270\345\205\263\346\223\215\344\275\234.md" @@ -0,0 +1,68 @@ +**+++** +**title="openGauss社区入门(opengauss-ddl相关操作)"** +**date="2022-08-31"** +**tags=["openGauss社区开发入门"]** +**archives=“2022-08”** +**author=“wangrururu”** +**summary="openGauss社区开发入门"** +**img="/zh/post/wzr/title/title.jpg"** +**times="12:08"** +**+++** +**1. 定义** +修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。 +**2. 注意事项** +•表的所有者、被授予表ALTER权限的用户或被授予ALTER ANY TABLE的用户有权限执行ALTER TABLE命令,系统管理员默认拥有此权限。但要修改表的所有者或者修改表的模式,当前用户必须是该表的所有者或者系统管理员,且该用户是新的所有者角色的成员。 +•不能修改分区表的tablespace,但可以修改分区的tablespace。 +•不支持修改存储参数ORIENTATION。 +•SET SCHEMA操作不支持修改为系统内部模式,当前仅支持用户模式之间的修改。 +•列存表只支持PARTIAL CLUSTER KEY、UNIQUE、PRIMARY KEY表级约束,不支持外键等表级约束。 +•列存表只支持添加字段ADD COLUMN、修改字段的数据类型ALTER TYPE、设置单个字段的收集目标SET STATISTICS、支持更改表名称、支持更改表空间,支持删除字段DROP COLUMN。对于添加的字段和修改的字段类型要求是列存支持的数据类型。ALTER TYPE的USING选项只支持常量表达式和涉及本字段的表达式,暂不支持涉及其他字段的表达式。 +•列存表支持的字段约束包括NULL、NOT NULL和DEFAULT常量值、UNIQUE和PRIMARY KEY;对字段约束的修改当前只支持对DEFAULT值的修改(SET DEFAULT)和删除(DROP DEFAULT),暂不支持对非空约束NULL/NOT NULL的修改。 +•不支持增加自增列,或者增加DEFAULT值中包含nextval()表达式的列。 +•不支持对外表、临时表开启行访问控制开关。 +•通过约束名删除PRIMARY KEY约束时,不会删除NOT NULL约束,如果有需要,请手动删除NOT NULL约束。 +•使用JDBC时,支持通过PrepareStatement对DEFAUTL值进行参数化设置。 +**3. 语法** +ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name ) } +action [, ... ]; +**4. 参数说明** +IF EXISTS +如果不存在相同名称的表,不报错,而会发出一个通知,告知表不存在。 +•table_name [*] | ONLY table_name | ONLY ( table_name ) +table_name是需要修改的表名。若声明了ONLY选项,则只有该表被更改。若未声明,该表及其所有子表都会被更改。 +**(1)给表增加一列** +alter table t1 add col3 varchar(30); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918946872-a12828b2-5d13-4df9-aeee-e33a3b228b4a.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=81&id=u310f7ca7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=101&originWidth=354&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43294&status=done&style=none&taskId=u9595cacd-0279-4fde-af49-faa168c3018&title=&width=283.2) +**(2)给表增加一个检查约束** +alter table t1 add constraint w1 check (col1 is not null); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918958169-d98c0dbf-fc94-494a-8cba-1b60bd7d4c18.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ud9827424&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=337&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43393&status=done&style=none&taskId=u1b815fd4-822c-4378-97f2-8ea8ac07c00&title=&width=269.6) +**(3)在一个操作中改变两个现存字段的类型。** +alter table t1 alter column col1 type varchar(80),alter column col2 type varchar(100); +或 +alter table t1 modify (col1 varchar(30), col2 varchar(60)); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918967892-dabef134-38c7-4d69-ab0a-597b9baf5099.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ubcbe5dea&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=322&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45460&status=done&style=none&taskId=u40308184-95fa-4b1e-9c26-6fced9aaa37&title=&width=257.6) +**(4)给一个已存在字段添加非空约束。** +alter table t1 alter column col3 set not null; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918977343-e841a668-9eb4-4d23-8043-c185a946fa80.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u47eed9fd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=283&originalType=binary&ratio=1&rotation=0&showTitle=false&size=38979&status=done&style=none&taskId=ud8b6060c-fed1-4dd0-bf9e-6095a0d68ac&title=&width=226.4) +**(5)移除已存在字段的非空约束。** +alter table t1 alter column col3 drop not null; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918990278-947e5ab7-bf51-40c6-b6c6-084e3c51544c.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u0fd9c3c8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=280&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40426&status=done&style=none&taskId=ub3d7b183-a4fb-4607-829e-7332901198a&title=&width=224) +(6)在一个列存表中添加局部聚簇列。 +alter table t2 add partial cluster key(col1); +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919001947-3cdb90cb-3a6c-4030-bd33-72d45eeb9326.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u42eefe75&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=435&originalType=binary&ratio=1&rotation=0&showTitle=false&size=41740&status=done&style=none&taskId=u8afce973-683b-43d9-b93c-7edc011bce6&title=&width=348) +(7)删除一个列存表中的局部聚簇列。 +alter table t2 drop constraint t2_cluster; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919011200-a5911aa8-44c1-45ef-9d91-5d8810220df3.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=68&id=u5927a8e8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=85&originWidth=304&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32101&status=done&style=none&taskId=u753671b4-9984-4ef8-9816-8b80e7537db&title=&width=243.2) +(8)将表移动到另一个表空间。 +alter table t2 set tablespace example1; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919019660-53acad63-758a-47e8-a2a8-c25d60575803.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=79&id=uce2ab77f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=99&originWidth=339&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37404&status=done&style=none&taskId=u57900c94-e41e-4134-8b19-7ac4cac288a&title=&width=271.2) +(9)创建模式wzr,将表移动到该模式中。 +create schema wzr; +alter table t2 set schema wzr; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919028296-77b17688-9061-4780-9491-7a9af23b2bf5.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=76&id=u830b0662&margin=%5Bobject%20Object%5D&name=image.png&originHeight=95&originWidth=295&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32604&status=done&style=none&taskId=u0a41d3ed-287d-452d-85aa-a6178faf7bc&title=&width=236) +(10)重命名已存在的表 +alter table wzr.t2 rename to testwzr; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919038424-aa42867a-7d3e-4bdd-983a-77f577038182.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=98&id=u364debb4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=123&originWidth=415&originalType=binary&ratio=1&rotation=0&showTitle=false&size=53738&status=done&style=none&taskId=uc39e6393-19ca-44be-aeec-38319d3d107&title=&width=332) +(11)从表中删除一个字段。 +alter table wzr.testwzr drop column col3; +![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919051707-3c4718d7-c44b-43bf-967f-50e499bdde8f.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=86&id=ue0569f65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=108&originWidth=350&originalType=binary&ratio=1&rotation=0&showTitle=false&size=46175&status=done&style=none&taskId=ucb3256a0-3b69-42ba-998b-f08ddbf0615&title=&width=280) -- Gitee From 78ed9c6105653eb8989d0667a2a7b75d3441e9d2 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 2 Sep 2022 02:31:58 +0000 Subject: [PATCH 5/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/wzr/opengauss-ddl=E7=9B=B8=E5=85=B3=E6=93=8D?= =?UTF-8?q?=E4=BD=9C.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...70\345\205\263\346\223\215\344\275\234.md" | 68 ------------------- 1 file changed, 68 deletions(-) delete mode 100644 "content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" diff --git "a/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" "b/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" deleted file mode 100644 index 5bd4c15b..00000000 --- "a/content/zh/post/wzr/opengauss-ddl\347\233\270\345\205\263\346\223\215\344\275\234.md" +++ /dev/null @@ -1,68 +0,0 @@ -**+++** -**title="openGauss社区入门(opengauss-ddl相关操作)"** -**date="2022-08-31"** -**tags=["openGauss社区开发入门"]** -**archives=“2022-08”** -**author=“wangrururu”** -**summary="openGauss社区开发入门"** -**img="/zh/post/wzr/title/title.jpg"** -**times="12:08"** -**+++** -**1. 定义** -修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。 -**2. 注意事项** -•表的所有者、被授予表ALTER权限的用户或被授予ALTER ANY TABLE的用户有权限执行ALTER TABLE命令,系统管理员默认拥有此权限。但要修改表的所有者或者修改表的模式,当前用户必须是该表的所有者或者系统管理员,且该用户是新的所有者角色的成员。 -•不能修改分区表的tablespace,但可以修改分区的tablespace。 -•不支持修改存储参数ORIENTATION。 -•SET SCHEMA操作不支持修改为系统内部模式,当前仅支持用户模式之间的修改。 -•列存表只支持PARTIAL CLUSTER KEY、UNIQUE、PRIMARY KEY表级约束,不支持外键等表级约束。 -•列存表只支持添加字段ADD COLUMN、修改字段的数据类型ALTER TYPE、设置单个字段的收集目标SET STATISTICS、支持更改表名称、支持更改表空间,支持删除字段DROP COLUMN。对于添加的字段和修改的字段类型要求是列存支持的数据类型。ALTER TYPE的USING选项只支持常量表达式和涉及本字段的表达式,暂不支持涉及其他字段的表达式。 -•列存表支持的字段约束包括NULL、NOT NULL和DEFAULT常量值、UNIQUE和PRIMARY KEY;对字段约束的修改当前只支持对DEFAULT值的修改(SET DEFAULT)和删除(DROP DEFAULT),暂不支持对非空约束NULL/NOT NULL的修改。 -•不支持增加自增列,或者增加DEFAULT值中包含nextval()表达式的列。 -•不支持对外表、临时表开启行访问控制开关。 -•通过约束名删除PRIMARY KEY约束时,不会删除NOT NULL约束,如果有需要,请手动删除NOT NULL约束。 -•使用JDBC时,支持通过PrepareStatement对DEFAUTL值进行参数化设置。 -**3. 语法** -ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name ) } -action [, ... ]; -**4. 参数说明** -IF EXISTS -如果不存在相同名称的表,不报错,而会发出一个通知,告知表不存在。 -•table_name [*] | ONLY table_name | ONLY ( table_name ) -table_name是需要修改的表名。若声明了ONLY选项,则只有该表被更改。若未声明,该表及其所有子表都会被更改。 -**(1)给表增加一列** -alter table t1 add col3 varchar(30); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918946872-a12828b2-5d13-4df9-aeee-e33a3b228b4a.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=81&id=u310f7ca7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=101&originWidth=354&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43294&status=done&style=none&taskId=u9595cacd-0279-4fde-af49-faa168c3018&title=&width=283.2) -**(2)给表增加一个检查约束** -alter table t1 add constraint w1 check (col1 is not null); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918958169-d98c0dbf-fc94-494a-8cba-1b60bd7d4c18.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ud9827424&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=337&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43393&status=done&style=none&taskId=u1b815fd4-822c-4378-97f2-8ea8ac07c00&title=&width=269.6) -**(3)在一个操作中改变两个现存字段的类型。** -alter table t1 alter column col1 type varchar(80),alter column col2 type varchar(100); -或 -alter table t1 modify (col1 varchar(30), col2 varchar(60)); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918967892-dabef134-38c7-4d69-ab0a-597b9baf5099.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=ubcbe5dea&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=322&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45460&status=done&style=none&taskId=u40308184-95fa-4b1e-9c26-6fced9aaa37&title=&width=257.6) -**(4)给一个已存在字段添加非空约束。** -alter table t1 alter column col3 set not null; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918977343-e841a668-9eb4-4d23-8043-c185a946fa80.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u47eed9fd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=283&originalType=binary&ratio=1&rotation=0&showTitle=false&size=38979&status=done&style=none&taskId=ud8b6060c-fed1-4dd0-bf9e-6095a0d68ac&title=&width=226.4) -**(5)移除已存在字段的非空约束。** -alter table t1 alter column col3 drop not null; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661918990278-947e5ab7-bf51-40c6-b6c6-084e3c51544c.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u0fd9c3c8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=280&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40426&status=done&style=none&taskId=ub3d7b183-a4fb-4607-829e-7332901198a&title=&width=224) -(6)在一个列存表中添加局部聚簇列。 -alter table t2 add partial cluster key(col1); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919001947-3cdb90cb-3a6c-4030-bd33-72d45eeb9326.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=82&id=u42eefe75&margin=%5Bobject%20Object%5D&name=image.png&originHeight=102&originWidth=435&originalType=binary&ratio=1&rotation=0&showTitle=false&size=41740&status=done&style=none&taskId=u8afce973-683b-43d9-b93c-7edc011bce6&title=&width=348) -(7)删除一个列存表中的局部聚簇列。 -alter table t2 drop constraint t2_cluster; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919011200-a5911aa8-44c1-45ef-9d91-5d8810220df3.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=68&id=u5927a8e8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=85&originWidth=304&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32101&status=done&style=none&taskId=u753671b4-9984-4ef8-9816-8b80e7537db&title=&width=243.2) -(8)将表移动到另一个表空间。 -alter table t2 set tablespace example1; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919019660-53acad63-758a-47e8-a2a8-c25d60575803.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=79&id=uce2ab77f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=99&originWidth=339&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37404&status=done&style=none&taskId=u57900c94-e41e-4134-8b19-7ac4cac288a&title=&width=271.2) -(9)创建模式wzr,将表移动到该模式中。 -create schema wzr; -alter table t2 set schema wzr; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919028296-77b17688-9061-4780-9491-7a9af23b2bf5.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=76&id=u830b0662&margin=%5Bobject%20Object%5D&name=image.png&originHeight=95&originWidth=295&originalType=binary&ratio=1&rotation=0&showTitle=false&size=32604&status=done&style=none&taskId=u0a41d3ed-287d-452d-85aa-a6178faf7bc&title=&width=236) -(10)重命名已存在的表 -alter table wzr.t2 rename to testwzr; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919038424-aa42867a-7d3e-4bdd-983a-77f577038182.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=98&id=u364debb4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=123&originWidth=415&originalType=binary&ratio=1&rotation=0&showTitle=false&size=53738&status=done&style=none&taskId=uc39e6393-19ca-44be-aeec-38319d3d107&title=&width=332) -(11)从表中删除一个字段。 -alter table wzr.testwzr drop column col3; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661919051707-3c4718d7-c44b-43bf-967f-50e499bdde8f.png#clientId=u8bb98dc9-d849-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=86&id=ue0569f65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=108&originWidth=350&originalType=binary&ratio=1&rotation=0&showTitle=false&size=46175&status=done&style=none&taskId=ucb3256a0-3b69-42ba-998b-f08ddbf0615&title=&width=280) -- Gitee From 355792730cce15ea90a6593f82d3dc80783908e8 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 2 Sep 2022 02:32:15 +0000 Subject: [PATCH 6/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/wzr/opengauss-=E8=A1=8C=E5=AD=98=E8=A1=A8=E4=B8=8E?= =?UTF-8?q?=E5=88=97=E5=AD=98=E8=A1=A8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...16\345\210\227\345\255\230\350\241\250.md" | 236 ------------------ 1 file changed, 236 deletions(-) delete mode 100644 "content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" diff --git "a/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" "b/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" deleted file mode 100644 index c0f72760..00000000 --- "a/content/zh/post/wzr/opengauss-\350\241\214\345\255\230\350\241\250\344\270\216\345\210\227\345\255\230\350\241\250.md" +++ /dev/null @@ -1,236 +0,0 @@ -**+++** -**title="openGauss社区入门(opengauss-行存表与列存表)"** -**date="2022-08-26"** -**tags=["openGauss社区开发入门"]** -**archives=“2022-08”** -**author=“wangrururu”** -**summary="openGauss社区开发入门"** -**img="/zh/post/wzr/title/title.jpg"** -**times="21:15"** -**+++** -1.行式存储和列式存储的区别: -(1)行式存储倾向于结构固定,列式存储倾向于结构弱化。 -(2)行式存储一行数据仅需要一个主键,列式存储一行数据需要多份主键。 -(3)行式存储的是业务数据,而列式存储除了业务数据之外,还需要存储列名。 -(4)行式存储更像是一个Java Bean,所有的字段都提前定义好,且不能改变;列式存储更像是一个Map,不提前定义,随意往里面添加key/value。 -2.列存表 -(1)列存表支持的数据类型: - -| 类别 | 类型 | 长度 | -| --- | --- | --- | -| Numeric Types | smallint | 2 | -| | integer | 4 | -| | bigint | 8 | -| | decimal | -1 | -| | numeric | -1 | -| | real | 4 | -| | double precision | 8 | -| | smallserial | 2 | -| | serial | 4 | -| | bigserial | 8 | -| | largeserial | -1 | -| Monetary Types | money | 8 | -| Character Types | character varying(n), varchar(n) | -1 | -| | character(n), char(n) | n | -| | character、char | 1 | -| | text | -1 | -| | nvarchar | -1 | -| | nvarchar2 | -1 | -| Date/Time Types | timestamp with time zone | 8 | -| | timestamp without time zone | 8 | -| | date | 4 | -| | time without time zone | 8 | -| | time with time zone | 12 | -| | interval | 16 | -| big object | clob | -1 | - -(2)列存表的特性 -•列存表不支持数组。 -•列存表不支持生成列。 -•列存表不支持创建全局临时表。 -•创建列存表的数量建议不超过1000个。 -•列存表的表级约束只支持PARTIAL CLUSTER KEY、UNIQUE、PRIAMRY KEY,不支持外键等表级约束。 -•列存表的字段约束只支持NULL、NOT NULL和DEFAULT常量值、UNIQUE和PRIMARY KEY。 -•列存表支持delta表,受参数enable_delta_store控制是否开启,受参数deltarow_threshold控制进入delta表的阀值。 -(3)创建一个列存表 -CREATE TABLE test1 -( -W_WAREHOUSE_SK INTEGER NOT NULL, -W_WAREHOUSE_ID CHAR(16) NOT NULL, -W_WAREHOUSE_NAME VARCHAR(20) , -W_WAREHOUSE_SQ_FT INTEGER , -W_GMT_OFFSET DECIMAL(5,2) -) WITH (ORIENTATION = COLUMN); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518898335-3be220a1-69fb-4292-be7c-a115e34356f2.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=100&id=u28e8b84e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=125&originWidth=513&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64447&status=done&style=none&taskId=u8e8f7340-d58c-4894-9158-1791b3d8273&title=&width=410.4) -(4)创建局部聚簇存储的列存表。 -CREATE TABLE test2 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2), -    PARTIAL CLUSTER KEY(W_WAREHOUSE_SK, W_WAREHOUSE_ID) -) WITH (ORIENTATION = COLUMN); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518908685-4ebee929-6238-4c75-a0eb-f148bf4505e8.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=98&id=u76be3295&margin=%5Bobject%20Object%5D&name=image.png&originHeight=122&originWidth=507&originalType=binary&ratio=1&rotation=0&showTitle=false&size=74437&status=done&style=none&taskId=ubecdf8a9-ed98-4d88-b92f-5937002847a&title=&width=405.6) -(5) 创建一个带压缩的列存表。 -CREATE TABLE test3 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -) WITH (ORIENTATION = COLUMN, COMPRESSION=HIGH); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518921111-71682e07-237b-4372-bd16-fffde14ccab1.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=u5258b083&margin=%5Bobject%20Object%5D&name=image.png&originHeight=112&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=66732&status=done&style=none&taskId=ud59e5c00-ad9b-46c3-8cf7-a07cc588b12&title=&width=443.2) -3.行存表 -(1)创建一个行存表 -CREATE TABLE test4 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -); -(2)创建表,并指定W_STATE字段的缺省值为GA。 -CREATE TABLE test5 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_STATE                   CHAR(2)           DEFAULT 'GA', -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518934802-145aa5b0-d075-4de6-a91a-e951ce8a4b73.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=106&id=uaaa13f31&margin=%5Bobject%20Object%5D&name=image.png&originHeight=133&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=69257&status=done&style=none&taskId=u50bd89e0-f8ac-41ad-bf87-e8f1c399768&title=&width=443.2) -(3)创建表,并在事务结束时检查W_WAREHOUSE_NAME字段是否有重复。 -CREATE TABLE test6 -( -    W_WAREHOUSE_SK            INTEGER                NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)   UNIQUE DEFERRABLE, -    W_WAREHOUSE_SQ_FT         INTEGER                        , -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518945990-1646d8f8-3d1c-41e9-ba4c-bde07955e429.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=85&id=ue79da1ab&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=466&originalType=binary&ratio=1&rotation=0&showTitle=false&size=51194&status=done&style=none&taskId=u2e6c541d-8c2a-4629-a0d0-c3cfc72a887&title=&width=372.8) -(4)创建一个带有70%填充因子的表 -CREATE TABLE test7 -( -    W_WAREHOUSE_SK            INTEGER                NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                    , -    W_WAREHOUSE_SQ_FT         INTEGER                        , -    W_GMT_OFFSET              DECIMAL(5,2), -    UNIQUE(W_WAREHOUSE_NAME) WITH(fillfactor=70) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518956618-6ab138e9-0d76-4e5e-8fcc-9033e8d1c7c8.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=85&id=u746c5837&margin=%5Bobject%20Object%5D&name=image.png&originHeight=106&originWidth=514&originalType=binary&ratio=1&rotation=0&showTitle=false&size=51127&status=done&style=none&taskId=u24d96820-985d-43b6-b9d8-5ef323163d9&title=&width=411.2) -CREATE TABLE test8 -( -    W_WAREHOUSE_SK            INTEGER                NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)               NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)              UNIQUE, -    W_WAREHOUSE_SQ_FT         INTEGER                        , -    W_GMT_OFFSET              DECIMAL(5,2) -) WITH(fillfactor=70); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518966782-0fa0830e-71e3-4991-be34-131a9f0b407b.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=92&id=ud23cb1c4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=115&originWidth=490&originalType=binary&ratio=1&rotation=0&showTitle=false&size=57819&status=done&style=none&taskId=ue723a32a-0442-4d0b-842b-2daace51f53&title=&width=392) -(5)创建表,并指定该表数据不写入预写日志 -CREATE UNLOGGED TABLE test9 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518984653-9ad83082-e5c6-425e-8c56-02a0d4c84dfc.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=92&id=ud8c796b0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=115&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=66341&status=done&style=none&taskId=u1c730ccb-8204-4f87-adab-6e646caf8dd&title=&width=443.2) -(6)创建临时表 -CREATE TEMPORARY TABLE test10 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661518995881-7ba6164b-d0a2-4a1c-9eda-6260d04d7dd4.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=96&id=ud10793d3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=120&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=75111&status=done&style=none&taskId=u2760ff8e-9ef2-43f9-9011-3c7a07c1448&title=&width=443.2) -(7)创建本地临时表,并指定提交事务时删除该临时表数据 -CREATE TEMPORARY TABLE test11 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -) ON COMMIT DELETE ROWS; -(8)创建全局临时表,并指定会话结束时删除该临时表数据 -CREATE GLOBAL TEMPORARY TABLE test12 -( -    ID                        INTEGER               NOT NULL, -    NAME                      CHAR(16)              NOT NULL, -    ADDRESS                   VARCHAR(50)                   -) ON COMMIT PRESERVE ROWS; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519010652-ac7c8047-6cee-466c-acad-57c27b00940c.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=90&id=u5109164f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=113&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=63390&status=done&style=none&taskId=u64492ade-2c96-4012-a9d9-e2b49be9848&title=&width=443.2) -(9)创建表时,不希望因为表已存在而报错 -CREATE TABLE IF NOT EXISTS test13 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -); -(10)创建普通表空间 -CREATE TABLESPACE DS_TABLESPACE1 RELATIVE LOCATION 'tablespace/tablespace_1'; -(11)创建表时,指定表空间 -CREATE TABLE test14 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -) TABLESPACE DS_TABLESPACE1; -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519039606-a8df8d5f-216f-4644-b01b-5121c79a5ec5.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=122&id=ud2149e44&margin=%5Bobject%20Object%5D&name=image.png&originHeight=153&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=87174&status=done&style=none&taskId=ud52a0005-0219-4b84-bc3f-9ca4cd7f0e7&title=&width=443.2) -(12)创建表时,单独指定W_WAREHOUSE_NAME的索引表空间 -CREATE TABLE test15 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME        VARCHAR(20)  UNIQUE USING INDEX TABLESPACE DS_TABLESPACE1, -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519048330-aaaacebb-f60e-42f0-82fe-5c65c09366fc.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=68&id=ufe700790&margin=%5Bobject%20Object%5D&name=image.png&originHeight=85&originWidth=479&originalType=binary&ratio=1&rotation=0&showTitle=false&size=39085&status=done&style=none&taskId=ud5977774-9979-4988-a13e-13d9cffb0f4&title=&width=383.2) -(13)创建一个有主键约束的表 -CREATE TABLE test16 -( -    W_WAREHOUSE_SK            INTEGER            PRIMARY KEY, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519059383-3abf4ae2-08fb-4387-b78b-119aca96d583.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=83&id=u210de4a1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=104&originWidth=416&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45413&status=done&style=none&taskId=ud3daa046-5474-459f-9d4d-4415bbc6cfe&title=&width=332.8) -(14) 创建一个有复合主键约束的表 -CREATE TABLE test17 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME          VARCHAR(20)                   , -    CONSTRAINT W_CSTR_KEY2 PRIMARY KEY(W_WAREHOUSE_SK,W_WAREHOUSE_ID) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519068712-cfca0144-171c-4dd7-96f4-a0469386a831.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=99&id=uf589cf2c&margin=%5Bobject%20Object%5D&name=image.png&originHeight=124&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71994&status=done&style=none&taskId=u46facacf-96f6-456c-bc29-d654d054f6d&title=&width=443.2) -(15) 定义一个检查列约束 -CREATE TABLE test18 -( -    W_WAREHOUSE_SK        INTEGER       PRIMARY KEY CHECK (W_WAREHOUSE_SK > 0), -    W_WAREHOUSE_ID       CHAR(16)              NOT NULL, -    W_WAREHOUSE_NAME    VARCHAR(20)    CHECK (W_WAREHOUSE_NAME IS NOT NULL), -    W_GMT_OFFSET              DECIMAL(5,2) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519080200-21a1f915-8e29-4a02-a206-69976fe06913.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=117&id=u7fcb107f&margin=%5Bobject%20Object%5D&name=image.png&originHeight=146&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=80452&status=done&style=none&taskId=u45180761-22c0-4bc5-abe9-8b3cc5e23a1&title=&width=443.2) -(16) 创建一个有外键约束的表 -CREATE TABLE tt -( -    W_CITY            VARCHAR(60)                PRIMARY KEY, -    W_ADDRESS       TEXT                     -); -CREATE TABLE test19 -( -    W_WAREHOUSE_SK            INTEGER               NOT NULL, -    W_WAREHOUSE_ID            CHAR(16)              NOT NULL, -    W_CITY                    VARCHAR(60)                   , -    FOREIGN KEY(W_CITY) REFERENCES tt (W_CITY) -); -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1661519092627-0efa89fe-8204-4324-ae3e-b42839914190.png#clientId=u743e9b88-5e6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=115&id=u675c96c7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=144&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=86683&status=done&style=none&taskId=u7b14ff45-96fd-4463-bbe4-5c47469836e&title=&width=443.2) -  -- Gitee From c866b140c9c85418900e19158eefea6ef735cb45 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 2 Sep 2022 02:32:38 +0000 Subject: [PATCH 7/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/wzr/wzr.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/zh/post/wzr/wzr.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 content/zh/post/wzr/wzr.md diff --git a/content/zh/post/wzr/wzr.md b/content/zh/post/wzr/wzr.md deleted file mode 100644 index 64fd36ce..00000000 --- a/content/zh/post/wzr/wzr.md +++ /dev/null @@ -1,3 +0,0 @@ -**+++**
**title="openGauss社区入门(opengauss-事务管理小结)"**
**date="2022-08-11"**
**tags=["openGauss社区开发入门"]**
**archives=“2022-08”**
**author=“wangrururu”**
**summary="openGauss社区开发入门"**
**img="/zh/post/wzr/title/title.jpg"**
**times="10:06"**
**+++** - -**1.事务概念:**
在日常操作中,对于一组相关操作通常需要其全部成功或全部失败,在关系型数据库中,这组相关操作称为事务。
**2.事务特性:**
**原子性**(atomicity,A):事务必须以一个整体单元的形式工作,对于其数据的修改,要么全部执行,幺要么全都不执行。如果只执行事务中多个操作的前半部分就会出现错误,那么必须回滚所有操作,让数据在逻辑上回滚到先前的状态。
**一致性**(consistency,C):事务在完成时,必须使所有的数据都保持一致状态。
**隔离性**(isolation,I):事务查看数据时数据所处的状态,要么是零一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务是不会查看中间状态的数据的。
**持久性**(durability,D):事务完成之后,对于系统的影响是永久性的。即使今后出现致命的系统故障,数据也将一直保持。
**3. 事务的隔离级别**
openGauss支持的事务隔离级别有两个:
**Read Committed**(读提交):只有在事务提交后,其更新结果才会被其他事务看见。可以解决脏读问题。
**Repeateble Read**(重复读):在一个事务中,对于同一份数据的读取结果总是相同的,无论是否有其他事务对这份数据进行操作,以及这个事务是否提交。可以解决脏读、不可重复读。
**4.事务语法参数:**
(1)**transaction_isolation**:设置当前事务的隔离级别。
取值范围:字符串,只识别以下字符串,大小写空格敏感:
serializable:等价于REPEATABLE READ。
read committed:只能读取已提交的事务的数据(缺省),不能读取到未提交的数据。
repeatable read:仅能读取事务开始之前提交的数据,不能读取未提交的数据以及在事务执行期间由 其它并发事务提交的修改。
default:设置为default_transaction_isolation所设隔离级别。
默认值:read committed
(2)**transaction_read_only**:设置当前事务是只读事务。该参数在数据库恢复过程中/在备机里固定为on;否则为default_transaction_read_only的值。
取值范围:布尔型
on表示设置当前事务为只读事务。
off表示该事务可以是非只读事务。
默认值:off
(3)**xc_maintenance_mode**:设置系统进入维护模式。(谨慎打开这个开关,避免引起openGauss数据不一致)
取值范围:布尔型
on表示该功能启用。
off表示该功能被禁用。
默认值:off
(4)**allow_concurrent_tuple_update**:设置是否允许并发更新。
取值范围:布尔型
on表示该功能启用。
off表示该功能被禁用。
默认值:on
(5)**transaction_deferrable**:指定是否允许一个只读串行事务延迟执行,使其不会执行失败。
取值范围:布尔型
on表示允许执行。
off表示不允许执行。
默认值:off
(6)**enable_show_any_tuples**:该参数只有在只读事务中可用,用于分析。
取值范围:布尔型
on/true表示表中元组的所有版本都会可见。
off/false表示表中元组的所有版本都不可见。
默认值:off
(7)**replication_type**:标记当前HA模式是单主机模式、主备从模式还是一主多备模式。该参数用户不能自己去设置参数值。
取值范围:0~2
2 表示单主机模式,此模式无法扩展备机。
1 表示使用一主多备模式,全场景覆盖,推荐使用。
0 表示主备从模式,目前此模式暂不支持。
默认值:1
(8)**pgxc_node_name**:指定节点名称。在备机请求主机进行日志复制时,如果application_name参数没有被设置,那么pgxc_node_name参数会被用来作为备机在主机上的流复制槽名字。该流复制槽的命名方式为 "该参数值_备机ip_备机port"。其中,备机ip和备机port取自replconninfo参数中指定的备机ip和端口号。该流复制槽最大长度为61个字符,如果拼接后的字符串超过该长度,则会使用截断后的pgxc_node_name进行拼接,以保证流复制槽名字长度小于等于61个字符。此参数修改后会导致连接数据库实例失败,不建议进行修改。
取值范围:字符串
默认值:当前节点名称
(9)**enable_defer_calculate_snapshot**:延迟计算快照的xmin和oldestxmin,执行1000个事务或者间隔1s才触发计算,设置为on时可以在高负载场景下减少计算快照的开销,但是会导致oldestxmin推进较慢,影响垃圾元组回收,设置为off时xmin和oldestxmin可以实时推进,但是会增加计算快照时的开销。
取值范围:布尔型。
on表示延迟计算快照xmin和oldestxmin。
off表示实时计算快照xmin和oldestxmin。
默认值:on。
**5.自治事务**
在主事务执行过程中新启的独立的事务。自治事务的提交和回滚不会影响主事务已提交的数据,同时自治事务也不受主事务影响。自治事务在存储过程、函数和匿名块中定义,用PRAGMA AUTONOMOUS_TRANSACTION关键字来声明。
例如存储过程中含自治事务:
--建表
create table t2(a int, b int);
insert into t2 values(1,2);
select * from t2;
--创建包含自治事务的存储过程
CREATE OR REPLACE PROCEDURE autonomous_4(a int, b int)  AS
DECLARE
num3 int := a;
num4 int := b;
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
insert into t2 values(num3, num4);
END;
/
--创建调用自治事务存储过程的普通存储过程
CREATE OR REPLACE PROCEDURE autonomous_5(a int, b int)  AS
DECLARE
BEGIN
insert into t2 values(666, 666);
autonomous_4(a,b);
rollback;
END;
/
--调用普通存储过程
select autonomous_5(11,22);
--查看表结果
select * from t2 order by a;
结果为:**主事务的回滚,不会影响自治事务已经提交的内容**。
![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660125046688-639e17e6-4b7c-44fc-a2ed-e3e912d89862.png#clientId=ufa95ed29-d1f0-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=102&id=u33d53ed8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=127&originWidth=310&originalType=binary&ratio=1&rotation=0&showTitle=false&size=26237&status=done&style=none&taskId=ub4c309b7-988c-4de2-a59e-7c8390fb9e3&title=&width=248) -- Gitee From 93dccd9c145cc1ca57750644e1467d8d120fed37 Mon Sep 17 00:00:00 2001 From: wangrururu Date: Fri, 2 Sep 2022 02:32:52 +0000 Subject: [PATCH 8/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cont?= =?UTF-8?q?ent/zh/post/wzr/wzr1.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/zh/post/wzr/wzr1.md | 55 ------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 content/zh/post/wzr/wzr1.md diff --git a/content/zh/post/wzr/wzr1.md b/content/zh/post/wzr/wzr1.md deleted file mode 100644 index 1abdb545..00000000 --- a/content/zh/post/wzr/wzr1.md +++ /dev/null @@ -1,55 +0,0 @@ -**+++** -**title="openGauss社区入门(opengauss-逻辑备份命令)"** -**date="2022-08-19"** -**tags=["openGauss社区开发入门"]** -**archives=“2022-08”** -**author=“wangrururu”** -**summary="openGauss社区开发入门"** -**img="/zh/post/wzr/title/title.jpg"** -**times="19:15"** -**+++** -openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息: -•导出表全量信息,包含表数据和表定义。 -•仅导出数据,不包含表定义。 -•仅导出表定义。 -1.常用参数 -(1)-U 连接数据库的用户名。 -(2)-W 指定用户连接的密码。 -(3)-f 将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。 -(4)-p 指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。 -(5)dbname 需要导出的数据库名称。 -(6)-t 指定导出的表(或视图、序列、外表),可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 -(7)-F 选择导出文件格式。-F参数值如下: -•p:纯文本格式 -•c:自定义归档 -•d:目录归档格式 -•t:tar归档格式 -(8)-T 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 -2.示例 -(1)导出表的定义和数据,导出文件格式为文本格式。 -gs_dump -f /home/opengauss300_0708/backup/m.sql -p 3436 postgres -t dd1 -F p -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908148094-ccb6939f-cffd-4b41-9440-454eaf8361d6.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=43&id=u6997755e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=54&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65145&status=done&style=none&taskId=u74d1d0f3-090f-4bfd-bca1-dab80f3922d&title=&width=443.2) -(2)只导出表的数据,导出文件格式为tar归档格式。 -gs_dump -f /home/opengauss300_0708/backup/m.tar -p 3436 postgres -t dd1 -a -F t -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908162097-b217e7c4-7e67-49b1-98c8-69f796b746b8.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=27&id=u43cdc23b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=34&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=37232&status=done&style=none&taskId=u88ffe901-057c-4233-bfe7-476253371a8&title=&width=443.2) -(3)导出表的定义,导出文件格式为目录归档格式。 -gs_dump -f /home/opengauss300_0708/backup/m -p 3436 postgres -t dd1 -s -F d -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908175403-885cce65-9c45-4b9f-a81d-1915d84fa625.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=ub7383955&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64834&status=done&style=none&taskId=u1730ce70-058a-46b9-a0ee-6f957e076ce&title=&width=443.2) -(4)不导出表,导出文件格式为自定义归档格式。 -gs_dump -f /home/opengauss300_0708/backup/m.dmp -p 3436 postgres -T dd1 -F c -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908186579-1a0bc9e4-bc4f-4b11-b61b-99f9643bebc1.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=44&id=u37964949&margin=%5Bobject%20Object%5D&name=image.png&originHeight=55&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65317&status=done&style=none&taskId=u86606486-7061-4325-b722-5facd291159&title=&width=443.2) -(5)同时导出两个表,导出文件格式为文本格式。 -gs_dump -f /home/opengauss300_0708/backup/m1.sql -p 3436 postgres -t dd1 -t dd2 -F p -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908193429-7b55a105-21d5-4403-bc8b-0ce1a2f6cc6a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=41&id=u3441ebac&margin=%5Bobject%20Object%5D&name=image.png&originHeight=51&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=56558&status=done&style=none&taskId=u14bc59fa-7f8f-474a-8892-cef500dec5d&title=&width=443.2) -(6)导出时,排除两个表,导出文件格式为文本格式。 -gs_dump -f /home/opengauss300_0708/backup/m2.sql -p 3436 postgres -T dd1 -T dd2 -F p -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908202991-7917b5b2-dbc4-453c-a672-4bcaf6ca17e4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=39&id=u4bec73f4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=49&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=58012&status=done&style=none&taskId=ube29a4c1-9098-426f-a22a-c880526dbb1&title=&width=443.2) -(7)导出表1的定义和数据,只导出表2的定义,导出文件格式为tar归档格式。 -gs_dump -f /home/opengauss300_0708/backup/m3.tar -p 3436 postgres -t dd1 -t dd2 --exclude-table-data dd2 -F t -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908214236-508c8634-0957-4f5f-959b-bd8be7d76fc3.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=33&id=uab5304a9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=41&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=43063&status=done&style=none&taskId=u616f3469-2577-4f69-a76b-915ec94d682&title=&width=443.2) -(8)导出表的定义和数据,并对导出文件进行加密,导出文件格式为文本格式。 -gs_dump -f /home/opengauss300_0708/backup/m4.sql -p 3436 postgres -t dd1 --with-encryption AES128 --with-key abcdefg_?1234567 -F p -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908222439-01895d2b-b756-4db1-a6c5-9157ce3a157a.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=36&id=u1e54b1e4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=45&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40671&status=done&style=none&taskId=uf2d174ee-05ae-43b0-b3d4-7ea502f72ed&title=&width=443.2) -(9)导出public模式下所有表(包括视图、序列和外表)和自定义模式中的表,包含数据和表定义,导出文件格式为自定义归档格式。 -gs_dump -f /home/opengauss300_0708/backup/m5.dmp -p 3436 postgres -t public.* -t myschema.dd1 -F c -![image.png](https://cdn.nlark.com/yuque/0/2022/png/32435345/1660908230084-ce873cb7-dc6a-4c97-84b7-3412c670a9a4.png#clientId=ud815a6a8-8484-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=37&id=u5d51992e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=46&originWidth=554&originalType=binary&ratio=1&rotation=0&showTitle=false&size=50842&status=done&style=none&taskId=ud926a090-a7be-425b-8491-aac913d82ca&title=&width=443.2) -- Gitee