我正在尝试复制包含修改器的 Redshift 表。
我尝试使用 CTAS 语句,但由于某种原因无法复制
not null
等修饰符
create table public.my_table as (select * from public.my_old_table limit 1);
似乎也没有办法在创建表后更改表以添加修饰符,这让我相信除了运行原始的创建表语句与CTAS 声明。
根据docs你可以做
CREATE TABLE my_table(LIKE my_old_table);
克隆包含数据的表的最简单方法是:
CREATE TABLE cloned_table AS SELECT * FROM original_table;
但它并没有继承所有的表属性,只是继承了基本的列定义。
要克隆与原始表完全相同的表,您必须执行查询。 一个用于创建表架构,另一个用于复制数据。
-- this will only create a clone of the table structure
CREATE TABLE cloned_table (LIKE original_table);
-- copying data
INSERT INTO cloned_table SELECT * FROM original_table;