postgresql 用 like 可以 复制结构包括主键约束

create tabletablename ( like tablename INCLUDING INDEXES INCLUDING COMMENTS);


 PostgreSQL 动态表复制(CREATE TABLE...LIKE):

https://blog.csdn.net/wlwlwlwl015/article/details/52493197

 

这篇文章讲得很好


一、只复制表结构

1、CREATE TABLE bas_cm_customer_bak  AS(SELECT * from bas_cm_customer limit 0)

2、CREATE TABLE bas_cm_customer_bak  (LIKE bas_cm_customer)

3.

扫描二维码关注公众号,回复: 8209554 查看本文章

-- inherits 不继承主键
  CREATE TABLE "tablename"() INHERITS ("tablename");

二、复制表结构及数据

1、CREATE TABLE bas_cm_customer_bak  AS(SELECT * FROM bas_cm_customer)

2、INSERT INTO bas_cm_customer_bak (field1,field...) SELECT field1,field2... FROM bas_cm_customer

      如果是字段全量复制的话,则简化为:

      INSERT INTO bas_cm_customer_bak SELECT * FROM bas_cm_customer

3、SELECT * INTO bas_cm_customer_bak  FROM bas_cm_customer

其中  SELECT * INTO bas_cm_customer_bak  IN  'Backup.mdb' FROM bas_cm_customer 是用于向另一个数据库

中拷贝表,此语句是全量拷贝表结构和数据,如果只需要其中某些域的话:

SELECT field1,field2 INTO bas_cm_customer_bak FROM bas_cm_customer

这三个语句在建表复制数据的时候,都可以通过增加WHERE条件进行数据筛选,当增加筛选条件后,没有数据符合要求,那么就是复制表结构。

2、3点释义:SELECT INTO FROM 和 INSERT INTO SELECT都是用来复制表的,主要区别在于,前者要求目标表

不存在,因为在插入时会自动创建,而后者则要求目标表存在
————————————————

猜你喜欢

转载自www.cnblogs.com/gaoyang666/p/12050260.html