python postgresql — невозможно ссылаться

#python #postgresql

#python #postgresql

Вопрос:

пытаюсь выполнить базовую вставку некоторых значений в таблицу с именем source…

 def insert_source():
    sql = """INSERT INTO source(sha1, height, width) VALUES(sha1, height, width) RETURNING id;"""
 

приводит к:

 column "sha1" does not exist
LINE 1: INSERT INTO source(sha1, height, width) VALUES(sha1, height,...
                                                       ^
HINT:  There is a column named "sha1" in table "source", but it cannot be referenced from this part of the query.
 

Обновить:
Я пытаюсь использовать переменные в качестве значений… нужен пример такой работы.

Ответ №1:

Ваш оператор SQL неверен, в инструкции должны быть фактические значения, заключенные в двойные кавычки, если это необходимо VALUES() . Правильный запрос будет:

 INSERT INTO source(sha1, height, width) VALUES("sha1", "height", "width") RETURNING id;
 

Предположим, что все ваши столбцы представляют собой текст или varchar.

Комментарии:

1. В значениях это переменные, которые должны быть заполнены….

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

3. можете ли вы опубликовать фактический пример с использованием переменных?

4. Смотрите, как использовать ЗНАЧЕНИЯ .

Ответ №2:

Действительно, очень простой. Я предлагаю проверить документацию. Он содержит несколько примеров. Также смотрите, как использовать ЗНАЧЕНИЯ. Но основное утверждение: (при условии правильных типов данных)

 insert into source(sha1, height, width) 
      values ('Rectangle', 10, 20);