jdbc/execute!
SQLite データベースに加えた変更をコミットする関数を取得するのに苦労しています。
例えば、
user=> (jdbc/execute! sqlite-db ["insert into person (second_name) values ('Gandhi');"])
nil
nil
が返され、行は挿入されません。ただし、無効なテーブル名を使用してエラーが発生する可能性があるため、関数が何らかの形でデータベースに接続していることはわかっています。
user=> (jdbc/execute! sqlite-db ["insert into ABCDEFG (second_name) values ('Gandhi');"])
SQLException [SQLITE_ERROR] SQL error or missing database (no such table: ABCDEFG) org.sqlite.DB.newSQLException (DB.java:383)
jdbc ライブラリにもjdbc/insert!
関数が含まれており、これを使用して正しく挿入できます。ただし、アプリケーションでより複雑なステートメントを使用しているため、代わりに関数を使用したかったexecute!
ため、パラメーター化された SQL 文字列を提供すると考えました。
execute!
関数を使用するとどこが間違っていますか?