Почему формат файлов sql влияет, могут ли они работать в PG или нет? - PullRequest
0 голосов
/ 16 апреля 2019

Я поместил файл в мой каталог 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".

Чего мне не хватает, чтобы запустить файл? Как мне изменить этот файл для работы?

1 Ответ

1 голос
/ 16 апреля 2019

USER является зарезервированным ключевым словом в Postgres, см. Документацию .В общем, вы должны избегать именования ваших таблиц и столбцов, используя зарезервированные ключевые слова 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, то вам навсегда придетсяизбегайте двойных кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...