Как добавить обновление таблицы с новыми данными -PostgreSQL + Python - PullRequest
0 голосов
/ 22 октября 2018

Я написал запрос для добавления данных в БД, но хотел бы добавить больше данных, не удаляя БД каждый раз.Как мне написать такой запрос?

что у меня есть:

category = (
    (1, 'Sports'),
    (2, 'Entertainment'),
    (3, 'Politics'),
    (4, 'Technology'),
    (5, 'Health'),
    (6, 'Business'),
    (7, 'Travel Competition'),)

query2 = "INSERT OR REPLACE INTO users_category (Id, Name) VALUES (%s, %s)
cursor.executemany(query2, category)

что я пробовал:

category = (
    (1, 'Sports'),
    (2, 'Entertainment'),
    (3, 'Politics'),
    (4, 'Technology'),
    (5, 'Health'),
    (6, 'Business'),
    (7, 'Travel'),
    (8, 'Other'),) #new data

query2 = "INSERT INTO users_category (Id, Name) VALUES (%s, %s) ON CONFLICT (id) DO UPDATE SET Name = excluded.users_category.Name"

Отслеживание ошибок:

Error invalid reference to FROM-clause entry for table 
"users_category"
LINE 1: ... 'Sports') ON CONFLICT (id) DO UPDATE SET Name = 
excluded.u...
                                                         ^
HINT:  There is an entry for table "users_category", but it cannot be 
referenced from this part of the query.

Желаемый результат:

Сценарий для добавления дополнительных данных в существующую таблицу безнеобходимо сбросить предыдущие данные вручную.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Это сработало:

query2 = "INSERT INTO users_category (Id, Name) VALUES (%s, %s) ON CONFLICT DO NOTHING"
...