Próbuję wykonać proste wstawianie do tabeli postgres, ale pojawia się błąd, że wartość, którą próbuję wstawić, jest interpretowana jako nazwa kolumny
INSERT INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT, "auto dealer")
Gdzie id jest ustawiony jako klucz podstawowy i automatyczna inkrementacja, a nie null. To są pola, które zaznaczyłem, konfigurując tabelę w phpPgAdmin.
Otrzymuję jednak ten błąd:
ERROR: ERROR: column "auto dealer" does not exist
Query = INSERT
INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT,
"auto dealer")
Umieściłem nazwę mojej tabeli w podwójnych cudzysłowach, tak jak tutaj przeczytałem .
I używany DEFAULT
do automatycznej inkrementacji identyfikatora, jak przeczytałem tutaj , powinienem.
Jakieś pomysły? Dzięki!
sql
postgresql
1252748
źródło
źródło
ERROR: ERROR: syntax error at or near "'imageTagBusinessMainCategory'" Position: 13
Odpowiedzi:
Użyj
'auto dealer'
zamiast tego. PostgreSQL interpretuje"
jako cudzysłowy dla identyfikatorów,'
jako cudzysłowy dla łańcuchów.Również:
Jeśli jest to nowy projekt, po prostu nie używaj tabel z mieszanymi wielkościami liter; jest to później źródłem frustracji. Zamiast móc używać dowolnej wielkości liter w instrukcjach SQL, musisz zarówno cytować nazwę identyfikatora, jak i uzyskać poprawną wielkość liter.
Nie ma potrzeby określania
id
/DEFAULT
, prosisz go, aby zrobił to, co już by zrobił. Nie spotkałem DBMS, który wymaga włączeniacolumnName
/DEFAULT
jeśli chcesz, aby umieścić domyślną wartość w kolumnie, więc nie sądzę, że ta dodatkowa para KV sprawi, że to, co się dzieje, będzie jaśniejsze dla każdego, kto przeczyta twój kod później .źródło
ERROR: ERROR: column "businessmaincategory" of relation "imageTagBusinessMainCategory" does not exist
INSERT INTO "imageTagBusinessMainCategory" ("businessMainCategory") VALUES ('auto dealer')
EDYCJA: Dodano podwójne cudzysłowy wokół nazwy kolumny
źródło
ERROR: ERROR: column "businessmaincategory" of relation "imageTagBusinessMainCategory" does not exist
thishasareallylongname
można uzyskać dostęp za pomocąselect * from thisHasAReallyLongName
.Postgres, Oracle itp. Oczekują, że nazwa kolumny będzie w cudzysłowie, jeśli mają mieszaną wielkość liter. Stwórz więc konwencję wszystkich małych lub samych wielkich liter w kolumnach tabeli lub użyj cudzysłowów, jak zasugerował David Faber
INSERT INTO "imageTagBusinessMainCategory" ("businessMainCategory") VALUES ('auto dealer')
źródło