我有以下脚本来创建一个表:

-- Create State table.
DROP TABLE IF EXISTS "State" CASCADE;
CREATE TABLE "State" (
 StateID SERIAL PRIMARY KEY NOT NULL,
 StateName VARCHAR(50)
);

它运行在的pgAdmin的查询工具细。但是,当我尝试使用PSQL从命令行运行它:

psql -U postgres -d dbname -f 00101-CreateStateTable.sql

我得到一个语法错误如下所示。

2: ERROR:  syntax error at or near ""
LINE 1: 
        ^
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE will create implicit sequence "State_stateid_seq" for serial column "State.stateid"
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "State_pkey" for table "State"
CREATE TABLE

为什么我用psql的出现语法错误,而不是与pgAdmin的?

有帮助吗?

解决方案

通过六角自卸车运行文件00101-CreateStateTable.sql。我敢打赌,你必须在文件的开头UTF-16标记(前加“ - ”注释字符)。

其他提示

要在Ubuntu除去BOM序列可以使用bomstrip,bomstrip-文件

什么版本(s)表示,你使用?如果不存在附带8.2版本,也许你正在使用8.1版本或旧的连接,当您使用psql的。

感谢你们。我一直在努力与这个问题了几个星期。使用PSQL我不能运行我的SQL脚本。我想我有一些问题我的操作系统,现在我知道这是我的文本文件中的BOM问题。我安装在Ubuntu bomstrip包,现在我所有的SQL脚本再次合作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top