как вставить значение по умолчанию в столбец с помощью clojureql - PullRequest
2 голосов
/ 25 февраля 2012

У меня есть таблица postgre с «id» в качестве SERIAL (столбец с автоинкрементом), «name» и «инструкция».

Я пытаюсь вставить в него как:

(ql/conj! recipe-table {:id nil :name "a" :instructions "b"})

*Evaluation aborted

(ql/conj! recipe-table {:id :default :name "a" :instructions "b"})

*Evaluation aborted

(ql/conj! recipe-table {:name "a" :instructions "b"})

*Evaluation aborted

Но:

(ql/conj! recipe-table {:id 1 :name "a" :instructions "b"})

работает, он просто вставляет 1 в id, но не выполняет автоинкрементную часть.

Так что у меня есть доступ ктаблица, у меня есть права на запись в нее, что доказано последним мошенничеством! Я просто не могу записать его со значением по умолчанию.

1 Ответ

1 голос
/ 11 апреля 2012

Я вижу, что вы открыли билет на Github, и я пойду туда. Однако я дам вам знать, что правильный способ вставки - просто пропустить ключи, которые имеют значения по умолчанию, например:

(ql / conc! Таблица рецептов {: имя "a": инструкции "b"})

Если вы будете так любезны опубликовать код SQL, который генерирует точную таблицу, с которой вы работаете, я буду рад попытаться воспроизвести проблему и исправить любые ошибки, которые я могу обнаружить. Это проверенный сценарий, поэтому мы либо смотрим на регрессию, которая прошла мимо наших модульных тестов, либо на проблему с вашей базой данных.

...