GBase 8a数据库集群提供select into outfile方式导出数据到文件,如果导出的文件已经存在,则会报File XXX already exists的错误。如果想强制覆盖写入,可以增加writemode by overwrites解决。
目录导航
样例
重复导出2次,报错 File '/home/gbase/t1.txt' already exists
gbase> select * from t1 into outfile '/home/gbase/t1.txt' fields terminated by ',';
Query OK, 1 row affected (Elapsed: 00:00:00.04)
gbase> system cat /home/gbase/t1.txt;
1,234
gbase> select * from t1 into outfile '/home/gbase/t1.txt' fields terminated by ',';
ERROR 1708 (HY000): [10.0.2.107:5050](GBA-02AD-0005)Failed to query in gnode:
DETAIL: File '/home/gbase/t1.txt' already exists
SQL: SELECT /*::ffff:10.0.2.107_208_15_2020-09-04_10:56:42*/ /*+ TID('2556310') */ `_tmp_1795293194_208_t37_1_1599174116_s`.`c1` AS `id`, `_tmp_1795293194_208_t37_1_1599174116_s`.`c2` AS `value` INTO OUTFILE '/home/gbase/t1.txt' CHARSET utf8 outfilemode by local writemode by normal FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES STARTING BY '' TERMINATED BY '\n' FROM `gctmpdb`._tmp_1795293194_2
gbase>
增加参数 writemode by overwrites 解决
gbase> select * from t1 into outfile '/home/gbase/t1.txt' fields terminated by ',' writemode by overwrites;
Query OK, 1 row affected (Elapsed: 00:00:00.05)
加载的其它常见错误,请参考右侧【导出】的TAG。
注意
如果数据库参数gbase_export_directory为默认的0, 则导出会自动创建和文件名相同的目录,而文件将会导出到该目录下,类似
XXXX/a.txt/a.txt
如果writemode by overwrites模式,会先【清空】整个目录(XXX/a.txt/)下的内容,无论是不是以前导出的,都会清理掉。