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

Używanie parametru pozycyjnego ($1,..) w psql

Możesz użyć zmiennych psql . Są one interpolowane w kodzie SQL. Zgodnie z dokumentacją:

Pamiętaj, że (w dokumentacji ):

Nie możesz więc pracować z parametrami pozycyjnymi w postaci $1 . Zakładam, że kopiujesz te fragmenty kodu z treści funkcji i to jest powód parametrów pozycyjnych?
Od PostgreSQL 9.2 nawet funkcje SQL mogą odwoływać się do parametrów po nazwie. Zgodnie z dokumentacją:

Funkcje PL/pgSQL obsługują nazwane parametry w treści funkcji od wersji 8.0.

Moja preferowana konwencja nazewnictwa to dodawanie parametrów funkcji przed _ aby uniknąć konfliktów nazw. Ale to kwestia gustu i stylu.

Tylko połowa rozwiązania

Twój przykład może działać tak:

db=> \set _name 'troy'
db=> \set _email '[email protected]'
db=> select * from users where name=:'_name' and email=:'_email'; 

Nadal musisz przygotować ciągi zapytań...
Zwróć uwagę na cudzysłowy w :'_name' . Ma to taki sam efekt jak zastosowanie quote_literal() na sznurku. Szczegóły w instrukcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy sposób, aby zapobiec duplikowaniu danych w kopii csv postgresql

  2. PostgreSQL:Jak uciec '?

  3. Dodanie kolumny jako klucza obcego powoduje, że kolumna ERROR, do której odwołuje się ograniczenie klucza obcego, nie istnieje

  4. PostgreSQL - pg_config -bash:pg_config:nie znaleziono polecenia

  5. Czy kolejność tabel w złączeniu ma znaczenie, gdy używane są złączenia LEWE (zewnętrzne)?