Корреляционные обновления
Записи можно также обновлять с помощью данных из выражения select. Такой подход называется корреляционным обновлением. Он работает следующим образом: вы определяете выражение select, которое возвращает нужное значение, а затем присваиваете это выражение в качестве значения в update.
В этом упражнении целевой таблицей для корреляционного обновления будет flat_census. Таблица flat_census — это сводная копия таблицы census, которая содержит, в частности, столбец fips_state.
Это упражнение является частью курса
Введение в базы данных на Python
Инструкции к упражнению
- Постройте запрос для выбора столбца
nameиз таблицыstate_fact. Сохраните этот запрос в переменнуюfips_stmt. - Добавьте к
fips_stmtусловиеwhere, которое сопоставляетfips_stateиз таблицыstate_factсfips_codeиз таблицыflat_census. - Постройте выражение обновления, которое устанавливает значение
state_nameв таблицеflat_censusравнымfips_stmt. Сохраните это выражение в переменнуюupdate_stmt. - Отправьте ответ, чтобы выполнить
update_stmt, сохраните результат вresultsи выведите значениеrowcountдляresults.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Build a statement to select name from state_fact: fips_stmt
fips_stmt = select([____])
# Append a where clause to match the fips_state to flat_census fips_code: fips_stmt
fips_stmt = fips_stmt.____(
____ == ____)
# Build an update statement to set the name to fips_stmt_where: update_stmt
update_stmt = update(____).values(____=____)
# Execute update_stmt: results
results = connection.execute(update_stmt)
# Print rowcount
print(results.rowcount)