Clojure JDBC создать составной первичный ключ - PullRequest
0 голосов
/ 15 мая 2018

Не совсем понимаю, что мне нужно.У меня есть таблица, которой нужен составной первичный ключ (postgresql), но я не вижу, как это сделать, используя clojure.java.jdbc.

Я пытаюсь получить

CREATE TABLE a_b (
    f integer REFERENCES a,
    g integer REFERENCES b,
    PRIMARY KEY (f, g)
);

Я пыталсямножество вещей, но суть как-то заставляет :primary и :key заменить "PRIMARY KEY (a, b)" ниже.

(j/create-table-ddl :a_b [[:f "integer REFERENCES a"]
                          [:g "integer REFERENCES b"]
                          [:id "PRIMARY KEY (a, b)"]]) ;<=== this line

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Кажется, я нашел решение здесь .Правильный способ сделать это - заменить мой [:id "PRIMARY KEY (f, g)"] на

["CONSTRAINT id PRIMARY KEY (f, g)"]

. Я оставлю вопрос на тот случай, если у кого-то есть аналогичная модель.

0 голосов
/ 15 мая 2018

Иногда проще обойти DSL и просто передать необработанную строку SQL следующим образом:

 (jdbc/db-do-commands raw-db-spec ["drop table if exists langs"
                                   "drop table if exists releases"])

Это особенно верно, если используется особенность, которая необычна или специфична для конкретной БД.

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