欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PostgreSQL数据库语法-复制表语法

程序员文章站 2024-03-21 13:39:58
...

PostgreSql复制表

问题:有一张表cq_question_answer中的部分数据需要修改,但是表中的数据量很大,所以我想借助临时表来操作。

所以我采用MySQL常用的复制表的语法(如下)来生成一张与cq_question_answer结构相同的临时表cq_question_answer_temp:

CREATE TABLE cq_question_answer_temp like cq_question_answer;

结果运行sql报错,错误信息:

[SQL]CREATE TABLE cq_question_answer_temp like cq_question_answer;

[Err] ERROR:  syntax error at or near "like"
LINE 1: CREATE TABLE cq_question_answer_temp like cq_question_answer...
                                             ^

说在"like"附近有语法错误,所以我换另一种写法试试:

CREATE TABLE cq_question_answer_temp SELECT * FROM cq_question_answer WHERE 1 = 2;

运行结果还是出错,跟上面的错误一样:

[SQL]CREATE TABLE cq_question_answer_temp SELECT * FROM cq_question_answer WHERE 1 = 2;

[Err] ERROR:  syntax error at or near "SELECT"
LINE 1: CREATE TABLE cq_question_answer_temp SELECT * FROM cq_questi...
                                             ^

所以,我采用另外一种写法,将"SELECT"子句用括号括起来:

CREATE TABLE cq_question_answer_temp AS (SELECT * FROM cq_question_answer WHERE 1 = 2);

运行结果ok:

[SQL]CREATE TABLE cq_question_answer_temp as (SELECT * FROM cq_question_answer WHERE 1 = 2);

时间: 0.104s

受影响的行: 0

PostgreSQL的中文文档相对还是比较少,也没有向学习MySQL那么系统地学习过,所以使用起来难免会有很多不习惯的地方,出了问题多琢磨琢磨,毕竟SQL语法还是共同的。

编者按:本文由弄青春原创,如果您喜欢,劳驾您点个赞,也欢迎您留下宝贵的评论!若要转载,请注明出处!

上一篇: tp 多表联查 递归

下一篇: 文档(6)