ОШИБКА: столбец отношения не существует PostgreSQL, невозможно выполнить запрос вставки

Привет, я пытаюсь вставить в таблицу tester3 не удается, когда я использую синтаксис

insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');

но

insert into tester3 values ( 1, 'jishnu1');

работает нормально.

mydb=# CREATE TABLE tester3
mydb-#    (
mydb(#     "UN0" integer,
mydb(#     "UN1" VARCHAR(40)
mydb(#    );
CREATE TABLE
mydb=# insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');
ERROR:  column "un0" of relation "tester3" does not exist
mydb=# \d tester3
           Table "public.tester3"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 UN0    | integer               |
 UN1    | character varying(40) |

Я думаю, что мне не хватает чего-то очень тривиального, я пробовал другие имена столбцов, некоторые из них работают нормально, а некоторые не работают. Я сбит с толку. Есть ли в PostgreSQL ограничение на имена столбцов, для которых работает первый синтаксис запроса вставки?


Редактировать: как предложено Gordon Linoff,использование двойных кавычек решило проблему.

insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1'); работает отлично

И как Frank Heikens указал на другие имена столбцов, которые работали без кавычек, где строчные буквы.

Строчный столбец является стандартом в PostgreSQL и также работает без кавычек

4 ответа

Решение

Если вы определяете столбцы с двойными кавычками, то вам нужно использовать их при обращении к столбцу:

insert into tester3 ("UN0", "UN1")
     values ( 1, 'jishnu1');

Я хотел бы предложить вам удалить двойные кавычки из имен столбцов в CREATE TABLE заявление.

Попробуйте это, используя двойные кавычки к именам столбцов

insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');

Проверьте имя столбца таблицы не должно быть в верхнем регистре. Если это верхний регистр, попробуйте изменить корпус, затем запустите, он должен работать.

у меня есть история с моей базой данных для Qgis + POSTGRES DATA, я пытаюсь обновить свою таблицу кодом с помощью Navicate UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi". "A_Lam_D310". "Nguon"='Lâm' и ERRO:SQL] ОБНОВЛЕНИЕ "MangLuoi". "A_Lam_D310" SET "MangLuoi". "A_Lam_D310". "Nguon"='Lâm'

[Err] ОШИБКА: столбец "MangLuoi" отношения "A_Lam_D310" не существует СТРОКА 1: ОБНОВЛЕНИЕ "MangLuoi". "A_Lam_D310" НАБОР "MangLuoi". "A_Lam_D310". "...

Теперь я пробую ОБНОВИТЬ "MangLuoi". "A_Lam_D310" SET "Nguon"='Lâm'

ОНО показывает нормально :)) по сообщению: Время: 0,035 с

Затронутые строки: 29

Спасибо, что поделились и ответили.

Другие вопросы по тегам