Har du prøvet det?
Det understøttes ikke af serveren, så selvom det ser ud til at virke i JDBC-driveren på klientsiden, anbefaler jeg det ikke:
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 );
^
Der er alligevel ingen fordel ved at gøre det, da du ikke kan parametrere dem, så du kan ikke skrive:
CREATE TABLE ? ( ? text, ...)
og angiv derefter pladsholderværdierne som forespørgselsparametre til Statement
.
I PostgreSQL kun planlagt Udsagn kan forberedes og parametreres på serversiden. I øjeblikket betyder det INSERT
, UPDATE
, DELETE
og SELECT
.
Du skal lave din egen strenginterpolation og sikre citering i henhold til PostgreSQL's leksikalske strukturregler
- som stort set er dem i SQL-specifikationen. Pak alle identifikatorer ind i "double quotes"
og fordoble alle bogstavelige dobbelte anførselstegn, f.eks. "these are literal ""double quotes"""
for tabelnavnet these are literal "double quotes"
.
Selve det faktum, at du ønsker at gøre dette, tyder på, at du sandsynligvis har designproblemer i dit skema og måske skal genoverveje, hvordan du griber tingene an. Måske post et mere detaljeret spørgsmål på dba.stackexchange.com, der forklarer, hvad du vil opnå med dette og hvorfor?