Опитахте ли?
Не се поддържа от сървъра, така че дори и да изглежда, че работи в JDBC драйвера от страна на клиента, не го препоръчвам:
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 );
^
Така или иначе няма предимство да го правите, тъй като не можете да параметризирате тях, така че не можете да напишете:
CREATE TABLE ? ( ? text, ...)
и след това задайте стойностите на контейнера като параметри на заявката към Statement
.
В PostgreSQL само планиран изявленията могат да бъдат подготвени и параметризирани от страна на сървъра. В момента това означава INSERT
, UPDATE
, DELETE
и SELECT
.
Ще трябва да направите своя собствена интерполация на низове и безопасно цитиране според правила за лексикална структура
- които са почти тези на спецификацията на SQL. Поставете всички идентификатори в "double quotes"
и удвоете всички буквални двойни кавички, напр. "these are literal ""double quotes"""
за името на таблицата these are literal "double quotes"
.
Самият факт, че искате да направите това, предполага, че вероятно имате проблеми с дизайна във вашата схема и може да се наложи да преосмислите как се справяте с нещата. Може би публикувайте по-подробен въпрос на dba.stackexchange.com, който обяснява какво искате да постигнете с това и защо?