Как решить проблему с синтаксисом sql запроса insert
Ошибка:
ERROR: syntax error at or near "order"
LINE 1: INSERT INTO sheet (id, order, cost, delivery_time) VALUES (1...
Мой запрос:
INSERT INTO sheet (id, order, cost, delivery_time) VALUES (1, '1231231', 123213, 2022-07-26);
Моя таблица в SQL:
id | order | cost | delivery_time
----+-------+------+---------------
(0 rows)
Типы данных колон:
Column('id', Integer, primary_key=True),
Column('order', String(255), unique=True),
Column('cost', Integer),
Column('delivery_time', Date)
Ответы (2 шт):
Автор решения: Roman-Stop RU aggression in UA
→ Ссылка
order ключевое слово в postgres. Если используете его как имя колонки или таблицы нужно брать в двойные кавычки:
INSERT INTO sheet (id, "order", cost, delivery_time) VALUES (1, '1231231', 123213, 2022-07-26);
Не забудте правильно кавычки экранировать, если запрос у вас в питон строке ограниченой двойными кавычками. Или ограничивайте тройными кавычками:
myquery = """INSERT INTO sheet (id, "order", cost, delivery_time) VALUES (1, '1231231', 123213, 2022-07-26);"""
или экранируйте обратным слешем:
myquery = "INSERT INTO sheet (id, \"order\", cost, delivery_time) VALUES (1, '1231231', 123213, 2022-07-26);"
Автор решения: Nero
→ Ссылка
Ошибка заключалась в том, что скорее всего слово "order" забронированное в sql.