PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bisakah kita menggunakan Perintah DDL dalam pernyataan yang disiapkan (PostgreSQL)?

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?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih stempel waktu hari ini saja (sejak tengah malam)

  2. Bagaimana cara mengonversi postgres json ke integer

  3. Bagaimana Mod() Bekerja di PostgreSQL

  4. PostgreSQL:Mengapa psql tidak dapat terhubung ke server?

  5. PostgreSQL:Temukan izin untuk elemen, jelajahi hingga root