如何基于表的存在使用sql复制表架构?
我想复制表架构,但前提是目标表尚不存在:如何基于表的存在使用sql复制表架构?,sql,postgresql,Sql,Postgresql,我想复制表架构,但前提是目标表尚不存在: CREATE TABLE IF NOT EXISTS my_table_secondary as select * from my_table_primary 问题:如果存在my_secondary_表,则运行此操作会导致: 错误:位于as的SyntaxerError 我该怎么做才能使这个sql语句正常工作? postgres 9.4要复制表的模式,需要完全不同的语法 create table if not exists my_table_second
CREATE TABLE IF NOT EXISTS my_table_secondary as select * from my_table_primary
问题:如果存在my_secondary_表,则运行此操作会导致:
错误:位于as的SyntaxerError
我该怎么做才能使这个sql语句正常工作?
postgres 9.4要复制表的模式,需要完全不同的语法
create table if not exists my_table_secondary (
like my_table_primary including all
);
include ALL是include DEFAULTS的缩写形式,包括
约束,包括索引,包括存储,包括注释
它不复制外键约束。看见搜索LIKE子句。尝试以下方法:
CREATE OR REPLACE VIEW my_view AS SELECT * FROM my_table_primary;
CREATE TABLE IF NOT EXISTS my_table_secondary LIKE my_view;
INSERT INTO my_table_secondary
SELECT * FROM my_view
WHERE NOT EXISTS ( SELECT * FROM my_table_secondary );
更多关于创建表。。。比如:这真的是一个Java问题吗?