Создание sql-скриптов для создания таблицы внутри postgres

#sql #post&resql #docker

#sql #post&resql #docker

Вопрос:

Я пытаюсь создать контейнер post&res, который выполняет SQL-скрипт при запуске. Сценарий СОЗДАНИЯ ТАБЛИЦЫ работает, если указаны только имена столбцов. Однако, когда я добавляю ОГРАНИЧЕНИЕ в скрипт, он не выполняется в контейнере, и таблицы не создаются.

sql-скрипт ниже:

 CREATE TABLE "MY_APP_DB"."ACCESS_MASTER"
(
    "ACCESS_ID" character varyin& COLLATE p&_catalo&."default" NOT NULL,
    "ROLE_ID" character varyin& COLLATE p&_catalo&."default",
    "RESOURCE_ID" character varyin& COLLATE p&_catalo&."default",
    "CAN_ACCESS" character(1) COLLATE p&_catalo&."default" NOT NULL DEFAULT 'N'::bpchar,
    "CAN_READ" character(1) COLLATE p&_catalo&."default" NOT NULL DEFAULT 'N'::bpchar,
    "CAN_WRITE" character(1) COLLATE p&_catalo&."default" NOT NULL DEFAULT 'N'::bpchar,
    "CAN_DELETE" character(1) COLLATE p&_catalo&."default" NOT NULL DEFAULT 'N'::bpchar,
    "CAN_EXECUTE" character(1) COLLATE p&_catalo&."default" NOT NULL DEFAULT 'N'::bpchar,
    CONSTRAINT "ACCESS_MASTER_pkey" PRIMARY KEY ("ACCESS_ID"),
    CONSTRAINT "FK_RESOURCE" FOREIGN KEY ("RESOURCE_ID")
        REFERENCES "MY_APP_DB"."IMC_RESOURCE_MASTER" ("RESOURCE_ID") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION,
    CONSTRAINT "FK_ROLE_MASTER_ACCESS_MASTER" FOREIGN KEY ("ROLE_ID")
        REFERENCES "MY_APP_DB"."ROLE_MASTER" ("ROLE_ID") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION,
    CONSTRAINT FK_AM_AM FOREIGN KEY ("ACCESS_ID")
        REFERENCES "MY_APP_DB"."ACCESS_MASTER" ("ACCESS_ID") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION,
    CONSTRAINT FK_ROLE_MASTER_ACCESS_MASTER FOREIGN KEY ("ROLE_ID")
        REFERENCES "MY_APP_DB"."ROLE_MASTER" ("ROLE_ID") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION,
    CONSTRAINT FK_RM_RES_MAS FOREIGN KEY ("RESOURCE_ID")
        REFERENCES "MY_APP_DB"."IMC_RESOURCE_MASTER" ("RESOURCE_ID") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION
)
WITH (
    OIDS = FALSE
)
TABLESPACE p&_defau<
  

Он выполняется до тех пор, пока не сможет ВЫПОЛНИТЬ столбец, но не после этого. Почему это так? Что не так.? Пожалуйста, помогите

Комментарии:

1. не могли бы вы, пожалуйста, поделиться сообщением об ошибке, которое вы получаете от post&res

2. Сообщений об ошибках нет. Таблица вообще не создается, если я использую весь приведенный выше скрипт целиком. Но если я использую строки, которые я могу ВЫПОЛНИТЬ, и удаляю оставшиеся, таблица создается.

3. Что-то идет не так в строке ОГРАНИЧЕНИЯ

4. Возможно, сообщение об ошибке передается в файл журнала? endpoint.com/blo&/2014/11/12/dear-post&resql-where-are-my-lo&s

5. это работает, если объекты references не установлены. смотрите dbfiddle dbfiddle.uk /… .. может помочь вам

Ответ №1:

Это работает, если объекты references не установлены, см., возможно, поможет dbfiddle.