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

Kolumna PostgreSQL 'foo' nie istnieje

Przypadkowo utworzyłeś nazwę kolumny ze spacją na końcu i prawdopodobnie phpPGadmin utworzył nazwę kolumny z podwójnymi cudzysłowami wokół niej:

create table your_table (
    "foo " -- ...
)

To dałoby ci kolumnę wyglądającą tak, jakby nazywała się foo wszędzie, ale musiałbyś go dwukrotnie cytować i uwzględniać spację za każdym razem, gdy go używasz:

select ... from your_table where "foo " is not null

Najlepszą praktyką jest używanie w PostgreSQL nazw kolumn bez cudzysłowów małymi literami. Powinno być gdzieś ustawienie w phpPGadmin, które powie mu, aby nie cytował identyfikatorów (takich jak nazwy tabel i kolumn), ale niestety nie używam phpPGadmin, więc nie wiem, gdzie to ustawienie jest (lub nawet jeśli istnieje).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przewodnik po partycjonowaniu danych w PostgreSQL

  2. Dostrajanie PostgreSQL:kluczowe elementy zwiększania wydajności

  3. Wyzwalacz z dynamiczną nazwą pola

  4. Uciekanie nazw kolumn podobnych do słów kluczowych w Postgres

  5. Nie można zainstalować PostgreSQL:Wystąpił błąd podczas uruchamiania instalatora środowiska wykonawczego Microsoft VC++ w systemie Windows XP