PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy możemy użyć poleceń DDL w przygotowanym oświadczeniu (PostgreSQL)?

Próbowałeś?

Nie jest obsługiwany przez serwer, więc nawet jeśli wydaje się działać w sterowniku JDBC po stronie klienta, nie polecam go:

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 );
                ^

I tak nie ma z tego żadnych korzyści, ponieważ nie można parametryzować je, więc nie możesz pisać:

CREATE TABLE ? ( ? text, ...)

a następnie określ wartości symboli zastępczych jako parametry zapytania do Statement .

Tylko w PostgreSQL planowane deklaracje mogą być przygotowywane i parametryzowane po stronie serwera. Obecnie oznacza to INSERT , UPDATE , DELETE i SELECT .

Musisz wykonać własną interpolację ciągów i bezpieczne cytowanie zgodnie z zasady struktury leksykalnej - które są w dużej mierze zgodne ze specyfikacją SQL. Umieść wszystkie identyfikatory w "double quotes" i podwój dowolne podwójne cudzysłowy dosłowne, np. "these are literal ""double quotes""" dla nazwy tabeli these are literal "double quotes" .

Sam fakt, że chcesz to zrobić, sugeruje, że prawdopodobnie masz problemy z projektem w swoim schemacie i być może będziesz musiał ponownie przemyśleć, jak sobie radzisz. Może opublikujesz bardziej szczegółowe pytanie na dba.stackexchange.com, które wyjaśnia, co chcesz dzięki temu osiągnąć i dlaczego?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd składni przy lub w pobliżu END z nazwą kolumny END

  2. Postgres COPY TO NULL liczb całkowitych

  3. Do czego służy konstruktor wierszy?

  4. Analiza porównawcza zarządzanych rozwiązań chmurowych PostgreSQL — część czwarta:Microsoft Azure

  5. Obliczanie sumy skumulowanej w PostgreSQL