这是我第一次使用-f
选项生成一个可以通过psql终端运行的脚本。
我的脚本如下:
DROP TABLE if EXISTS piste;
DROP TABLE if EXISTS lift;
DROP TABLE if EXISTS lift_location;
CREATE TABLE piste (
piste_name varchar(30) PRIMARY KEY NOT NULL,
grade varchar(10) NOT NULL,
length decimal NOT NULL,
fall smallint NOT NULL,
open boolean NOT NULL,
);
INSERT INTO piste (name, grade, length, fall, open) VALUES
('test name', 'easy', 3.2, 400, true);
这会产生以下错误:
psql:create_tables.sql:22: NOTICE: table "piste" does not exist, skipping
DROP TABLE
psql:create_tables.sql:23: NOTICE: table "lift" does not exist, skipping
DROP TABLE
psql:create_tables.sql:24: NOTICE: table "lift_location" does not exist, skipping
DROP TABLE
psql:create_tables.sql:33: ERROR: syntax error at or near ")"
LINE 8: );
^
psql:create_tables.sql:36: ERROR: relation "piste" does not exist
LINE 1: INSERT INTO piste (name, grade, length, fall, open) VALUES
有人知道造成这种情况的原因吗?从我所看到的,表“piste”是在我尝试插入之前创建的,所以它怎么能说它不存在呢?
谢谢, 克里斯。
答案 0 :(得分:3)
此错误:
psql:create_tables.sql:33:错误:语法错误在或附近“)” 第8行:);
告诉您表格不已创建。
你的创建表中有一个悬空逗号,
(在最后一列之后)。删除它,你应该没事。
答案 1 :(得分:2)
最后的逗号生成错误消息:
open boolean NOT NULL,
其他消息是NOTICEs not errors。他们只是告诉你他们没有放弃桌子,因为他们不存在