#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);