在MySQL里面执行show create table table_name 可以获取表的创建语句,Greenplum只能导出这个表的结构进行查看,命令是:
pg_dump -s --table=tb1_partition_range_yyyymmdd testdb > tb1_partition_range_yyyymmdd.sql
查询资料以后终于找到了定义一个函数去获取的方法:
set search_path to public;
CREATE EXTENSION plpythonu;
-- pg_dump -s -t cities gp_sydb | egrep -v "^--|^$"
CREATE OR REPLACE FUNCTION get_table_ddl(tablename text, dbname text)
RETURNS text
AS $$
import commands
dumpCmd = "pg_dump -s -t {0} {1} | egrep -v \"^--|^$\"".format(tablename, dbname)
return commands.getoutput(dumpCmd)
$$ LANGUAGE plpythonu;
测试
select public.get_table_ddl('dw_ods.t1'::text, 'postgres'::text);
结果: