Menggunakan UPDATE Expression
Itu update() metode pada objek tabel target membangun ekspresi SQL UPDATE yang setara.
table.update().where(conditions).values(SET expressions)
Itu values()metode pada objek pembaruan yang dihasilkan digunakan untuk menentukan kondisi SET UPDATE. Jika dibiarkan sebagai Tidak ada, kondisi SET ditentukan dari parameter yang diteruskan ke pernyataan selama eksekusi dan / atau kompilasi pernyataan.
Klausa where adalah ekspresi opsional yang menjelaskan kondisi WHERE dari pernyataan UPDATE.
Potongan kode berikut mengubah nilai kolom 'lastname' dari 'Khanna' menjadi 'Kapoor' dalam tabel siswa -
stmt = students.update().where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')
Objek stmt adalah objek pembaruan yang diterjemahkan menjadi -
'UPDATE students SET lastname = :lastname WHERE students.lastname = :lastname_1'
Parameter terikat lastname_1 akan diganti kapan execute()metode dipanggil. Kode pembaruan lengkap diberikan di bawah ini -
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()
students = Table(
'students',
meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
conn = engine.connect()
stmt=students.update().where(students.c.lastname=='Khanna').values(lastname='Kapoor')
conn.execute(stmt)
s = students.select()
conn.execute(s).fetchall()
Kode di atas menampilkan output berikut dengan baris kedua menunjukkan efek operasi pembaruan seperti pada tangkapan layar yang diberikan -
[
(1, 'Ravi', 'Kapoor'),
(2, 'Rajiv', 'Kapoor'),
(3, 'Komal', 'Bhandari'),
(4, 'Abdul', 'Sattar'),
(5, 'Priya', 'Rajhans')
]
Perhatikan bahwa fungsionalitas serupa juga dapat dicapai dengan menggunakan update() fungsi dalam modul sqlalchemy.sql.expression seperti yang ditunjukkan di bawah ini -
from sqlalchemy.sql.expression import update
stmt = update(students).where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')