我已经在我的docker-entrypoint-initdb.d/
目录中放置了一个文件。这是文件中的内容:
CREATE TABLE user_test (
user_id INTEGER,
name VARCHAR(100),
email VARCHAR(128),
active_flg BOOLEAN,
type VARCHAR(20),
CONSTRAINT pk_user PRIMARY KEY (user_id)
);
我遇到的错误是psql:/docker-entrypoint-initdb.d/0001-initial-database-design.sql:8: ERROR: syntax error at or near "CREATE"
。
我无法运行文件吗?如何更改此文件以使其正常工作?
答案 0 :(得分:1)
USER
是Postgres see the documentation中的保留关键字。通常,应避免使用保留的SQL关键字来命名表和列。如果您确实想按原样继续,请将user
放在双引号中:
CREATE TABLE "user" (
user_id INTEGER,
name VARCHAR(100),
email VARCHAR(128),
active_flg BOOLEAN,
type VARCHAR(20),
CONSTRAINT pk_user PRIMARY KEY (user_id)
);
但是,请记住,如果您选择命名表user
,那么您将永远不得不用双引号将其转义。