首页 > 解决方案 > Postgres CREATE/DROP DATABASE 有时会导致语法错误

问题描述

我有时会在命令处或附近遇到语法错误,但下一次尝试它工作正常。

删除数据库:

Superman-# DROP DATABASE a;
ERROR:  syntax error at or near "DROP"
LINE 2: DROP DATABASE a;
        ^
Superman=# DROP DATABASE a;
DROP DATABASE

以及创建数据库:

Superman=# CREATE DATABSE task1database;
ERROR:  syntax error at or near "DATABSE"
LINE 1: CREATE DATABSE task1database;
           ^
Superman=# CREATE DATABASE a;
CREATE DATABASE
Superman=# CREATE DATABASE task1database;
CREATE DATABASE

标签: postgresql

解决方案


观察第一行的提示:

Superman-#

表示这-是续行,也就是说,你没有用分号完成你在前一行写的任何内容。

发送到服务器的结果 SQL 语句是自最后一个分号以来的所有内容,因此DROP DATABASE位于字符串中间的某个位置并导致语法错误。

始终注意提示,如果它不包含 a =,您可以按Ctrl+清除缓冲区C

第二个例子只是一个错字DATABSE


推荐阅读