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

DELETE FROM ... raportowanie błędu składni w miejscu lub w pobliżu .

Twoje zapytanie nie ma sensu.

DELETE FROM database_userprofile WHERE user.username = 'some';
                                       ^^^^

Gdzie user pochodzić z? Nie występuje w zapytaniu. Czy jest to kolumna database_userprofile? ? Jeśli tak, nie możesz napisać user.username (chyba że jest to typ złożony, w takim przypadku musiałbyś napisać (user).username powiedzieć parserowi, że; ale wątpię, że jest to typ złożony).

Bezpośrednią przyczyną jest to, że user jest słowem zarezerwowanym . Nie możesz użyć tej nazwy bez jej cytowania:

DELETE FROM database_userprofile WHERE "user".username = 'some';

... jednak to zapytanie nadal nie ma sensu, po prostu da inny błąd:

regress=> DELETE FROM database_userprofile WHERE "user".username = 'some';
ERROR:  missing FROM-clause entry for table "user"
LINE 1: DELETE FROM database_userprofile WHERE "user".username = 'so...

Domyślam się, że próbujesz usunąć sprzężenie. Zakładam, że masz tabele takie jak:

CREATE TABLE "user" (
    id serial primary key,
    username text not null,
    -- blah blah
);

CREATE TABLE database_userprofile (
     user_id integer references "user"(id),
     -- blah blah
);

i próbujesz usunąć z warunkiem w drugiej tabeli.

Jeśli tak, nie możesz po prostu napisz user.username . Musisz użyć:

DELETE FROM database_userprofile
USING "user"
WHERE database_userprofile.user_id = "user".id
AND "user".username = 'fred';

Zauważysz, że umieściłem w podwójnym cudzysłowie słowo „użytkownik”. Dzieje się tak, ponieważ jest to słowo kluczowe i tak naprawdę nie powinno być używane do nazw tabel ani innych identyfikatorów zdefiniowanych przez użytkownika. Podwójny cudzysłów wymusza jego interpretację jako identyfikator, a nie słowo kluczowe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podziel rekord zwrócony przez funkcję na wiele kolumn

  2. Migracja Rails + Postgres - dlaczego otrzymuję błąd PG::UndefinedFunction:ERROR:function gen_random_uuid() nie istnieje?

  3. SQL wybierający średni wynik w zakresie dat

  4. Kolejność zwrotu wiersza SQL

  5. Nie można WSTAWIĆ:BŁĄD:wartość tablicy musi zaczynać się od { lub informacji o wymiarze