美文网首页
PostgreSQL | 数据库语法-复制表语法

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

作者: 弄青春 | 来源:发表于2019-05-07 21:24 被阅读0次

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语法还是共同的。

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

相关文章

网友评论

      本文标题:PostgreSQL | 数据库语法-复制表语法

      本文链接:https://www.haomeiwen.com/subject/zdluoqtx.html