Aktualizacje skorelowane
Rekordy można też aktualizować na podstawie danych zwróconych przez instrukcję select. Taki mechanizm nazywamy
aktualizacją skorelowaną. Polega on na zdefiniowaniu instrukcji select, która zwraca wartość, jaką chcemy przypisać do rekordu, a następnie na przypisaniu tej instrukcji jako wartości w
update.
W tym ćwiczeniu jako cel aktualizacji skorelowanej będzie służyć tabela flat_census. Jest to uproszczona kopia tabeli census, zawierająca między innymi kolumnę fips_state.
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Zbuduj instrukcję wybierającą kolumnę
namez tabelistate_fact. Zapisz tę instrukcję jakofips_stmt. - Dołącz do
fips_stmtklauzulęwhere, która dopasowuje kolumnęfips_statez tabelistate_factdo kolumnyfips_codew tabeliflat_census. - Zbuduj instrukcję aktualizującą, która ustawia
state_namew tabeliflat_censusna wartośćfips_stmt. Zapisz tę instrukcję jakoupdate_stmt. - Prześlij odpowiedź, aby wykonać
update_stmt, zapisz wyniki jakoresultsi wyświetl wartośćrowcountobiekturesults.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)