Apakah Anda mencobanya?
Itu tidak didukung oleh server, jadi meskipun tampaknya berfungsi di driver JDBC sisi klien, saya tidak merekomendasikannya:
regress=> PREPARE CREATE TABLE test ( id serial primary key );
ERROR: syntax error at or near "CREATE"
LINE 1: PREPARE CREATE TABLE test ( id serial primary key );
^
Bagaimanapun, tidak ada untungnya melakukannya karena Anda tidak dapat memparameterisasi mereka, sehingga Anda tidak dapat menulis:
CREATE TABLE ? ( ? text, ...)
lalu tentukan nilai placeholder sebagai parameter kueri ke Statement
.
Di PostgreSQL hanya direncanakan pernyataan dapat disiapkan dan diparameterisasi di sisi server. Saat ini artinya INSERT
, UPDATE
, DELETE
dan SELECT
.
Anda harus melakukan interpolasi string Anda sendiri dan kutipan aman sesuai dengan aturan struktur leksikal
- yang cukup banyak dari spesifikasi SQL. Bungkus semua pengenal dalam "double quotes"
dan menggandakan tanda kutip ganda literal, misalnya "these are literal ""double quotes"""
literal untuk nama tabel these are literal "double quotes"
.
Fakta bahwa Anda ingin melakukan ini menunjukkan bahwa Anda mungkin memiliki masalah desain dalam skema Anda dan mungkin perlu memikirkan kembali bagaimana Anda melakukannya. Mungkin memposting pertanyaan yang lebih rinci di dba.stackexchange.com yang menjelaskan apa yang ingin Anda capai dengan ini dan mengapa?