学习openGauss的第十三天。
主要内容是将表数据导出,并导入到其他表,merge into的方式进行数据导入
连接数据库
root@modb:~# su - omm
omm@modb:~$ gsql -r
gsql ((openGauss 2.0.0 build 78689da9) compiled at 2021-03-31 21:03:52 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
1.创建表1并在表中插入数据,分别指定字段和整行为缺省值
omm=# create table tab_test(col1 int,col2 char(20),col3 char(20));
CREATE TABLE
omm=# insert into tab_test(col1) values(1);
INSERT 0 1
omm=# insert into tab_test default values;
INSERT 0 1
omm=# select * from tab_test ;
col1 | col2 | col3
------+------+------
1 | |
| |
(2 rows)
2.创建表2并将表1的数据全部导入表2中
omm=# create table tab_test1(col1 int ,col2 char(20),col3 char(20));
CREATE TABLE
omm=# insert into tab_test1 select * from tab_test ;
INSERT 0 2
omm=# select * from tab_test1 ;
col1 | col2 | col3
------+------+------
1 | |
| |
(2 rows)
3.创建表3和表4,并合并两个表的数据到表3
omm=# create table tab3(id int,name char(20)) ;
omm=# CREATE TABLE
omm=# create table tab4(id int,name char(20));
CREATE TABLE
omm=# insert into tab3 values(1,'a'),(2,'b'),(3,'c'),(4,'d') ;
INSERT 0 4
omm=# insert into tab4 values(2,'b'),(3,'c'),(4,'d'),(5,'e');
INSERT 0 4
omm=# merge into tab4 t4
omm-# using tab3 t3
omm-# on (t3.id=t4.id)
omm-# when matched then
omm-# update set t4.name='aaa'
omm-# when not matched then
omm-# insert values(t3.id,t3.name) ;
omm=# select * from tab3 ;
id | name
----+----------------------
1 | a
2 | b
3 | c
4 | d
(4 rows)
omm=# select * from tab4 ;
2 | aaa
3 | aaa
4 | aaa
(5 rows)
omm=# id | name
----+----------------------
5 | e
1 | a
4.将表3的数据输出到文件,再将文件中的数据导入到表5
omm=# create table tab5(id int,name char(20));
CREATE TABLE
copy tab3 to '/home/omm/tab3.dat';
copy tab5 from '/home/omm/tab3.dat';
omm=# copy tab3 to '/home/omm/tab3.dat';
COPY 4
omm=# copy tab5 from '/home/omm/tab3.dat';
COPY 4
omm=# select * from tab5 ;
(4 rows)
omm=# id | name
----+----------------------
1 | a
2 | b
3 | c
4 | d