文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
Oracle To GaussDB 转换错误码/
U0100067: GaussDB 中 CREATE TABLE AS 语法不支持创建分区表
更新时间:2026-03-19 GMT+08:00
U0100067: GaussDB 中 CREATE TABLE AS 语法不支持创建分区表
描述
GaussDB 不支持CREATE TABLE AS 语法不支持创建分区表。
数据库类型与版本
- 源库类型与版本:UGO 支持的 Oracle 版本。
- 目标库类型与版本:GaussDB v2.0-8.100 之前的版本。
语法示例
CREATE TABLE sales_interval_part
PARTITION BY RANGE (sale_date)
INTERVAL ('1 MONTH')
(
PARTITION p_hist VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD'))
)
AS
SELECT sale_id, sale_date, product_id, region, amount
FROM sales_source
WHERE sale_date >= DATE '2023-01-01';
改造建议
改写思路如下:首先创建分区表,然后insert into select的方式插入数据。
GaussDB修改后:
CREATE TABLE sales_interval_part (
sale_id numeric,
sale_date timestamp without time zone,
product_id text,
region text,
amount numeric
)
PARTITION BY RANGE (sale_date)
INTERVAL ('1 mon')
(
PARTITION p_hist VALUES LESS THAN ('2023-01-01 00:00:00') TABLESPACE pg_default
);
insert into sales_interval_part SELECT sale_id, sale_date, product_id, region, amount
FROM sales_source
WHERE sale_date >= DATE '2023-01-01';