Как обновить поля таблицы [Postgres] - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть таблица с именем users_category с полями: ID and Name:

 ID Name

 1 | Sports
 --------------
 2 | Movies
 --------------
 3 | Politics

Я всегда делаю изменения в полях.Следующий запрос добавляет новые поля в БД:

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

Как обновить различные поля без использования его идентификатора?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете обновить поля на основе их существующих значений.Например, это изменит Name любого users_category, который в настоящее время Movies, на Films:

query = "UPDATE users_category SET Name = 'Films' WHERE Name = 'Movies'"

Если ваши данные выглядят так:

 ID Name

 1 | Sports
 --------------
 2 | Movies
 --------------
 3 | Politics
 --------------
 4 | Movies

, тогда будут обновлены обе строки с Name из Movies.

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

query = "UPDATE users_category SET Name = 'Films' WHERE ID = 2"

Это единственный способ получить такую ​​таблицу:

 ID Name

 1 | Sports
 --------------
 2 | Films
 --------------
 3 | Politics
 --------------
 4 | Movies
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...