Правильный синтаксис для того, что вам нужно, упоминается только в тексте над первым insert!
примером, но затем не используется.
... если ваша база данных / драйвер поддерживает это, вы можете передать :return-keys
в качестве опции, чтобы вернуть сгенерированные ключи.Начиная с java.jdbc 0.7.6, это может быть вектор возвращаемых имен столбцов (для драйверов, поддерживающих это) или простой логический тип.
Так что синтаксис для получения того, что вы хотите, это:
; create a sample table with timestamp and sequence id
(jdbc/db-do-commands db-spec ["CREATE TABLE test (
id SERIAL,
ts TIMESTAMP DEFAULT 'now()',
name TEXT)"])
; Use `:return-keys` to get the actual generated ids
; and pass it the columns you are after
(jdbc/insert! db-spec :test {:name "Test 1"} {:return-keys ["id" "ts" "name"]})
; => ({:id 3, :ts #inst "2018-12-17T13:19:57.544067000-00:00", :name "Test 1"})
Смешать и сопоставить с другими артериями insert!