UPDATE İfadesini Kullanma
update() hedef tablo nesnesindeki yöntem eşdeğer UPDATE SQL ifadesini oluşturur.
table.update().where(conditions).values(SET expressions)
values()ortaya çıkan güncelleme nesnesindeki yöntem, UPDATE'in SET koşullarını belirtmek için kullanılır. Yok olarak bırakılırsa, SET koşulları, ifadenin yürütülmesi ve / veya derlenmesi sırasında ifadeye iletilen parametrelerden belirlenir.
Where cümlesi, UPDATE ifadesinin WHERE koşulunu açıklayan İsteğe Bağlı bir ifadedir.
Aşağıdaki kod parçacığı, öğrenciler tablosunda 'Khanna'dan' soyad 'sütununun değerini' Kapoor'a değiştirir -
stmt = students.update().where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')
Stmt nesnesi, çeviren bir güncelleme nesnesidir -
'UPDATE students SET lastname = :lastname WHERE students.lastname = :lastname_1'
Bağlı parametre lastname_1 ne zaman değiştirilecek execute()yöntem çağrılır. Tam güncelleme kodu aşağıda verilmiştir -
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()
Yukarıdaki kod, verilen ekran görüntüsündeki gibi güncelleme işleminin etkisini gösteren ikinci satırla aşağıdaki çıktıyı görüntüler -
[
(1, 'Ravi', 'Kapoor'),
(2, 'Rajiv', 'Kapoor'),
(3, 'Komal', 'Bhandari'),
(4, 'Abdul', 'Sattar'),
(5, 'Priya', 'Rajhans')
]
Benzer işlevselliğin kullanılarak da elde edilebileceğini unutmayın. update() sqlalchemy.sql.expression modülündeki fonksiyon aşağıda gösterildiği gibi -
from sqlalchemy.sql.expression import update
stmt = update(students).where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')