Var mı yok mu kontrolü

Veritabanına kayıt eklerken eklediğimiz kaydın daha önce olup olmadığını kontrol edecek, varsa eklemeyip bir sonraki kaydı kontrol edecek, yoksa ekleyecek bir döngüyü nasıl oluşturabilirim?
Veritabanında bir tablom var o tablodan link yapısı var o link kolonu için bu işlemi istiyorum. Bir link birkaç defa çekilmiş olabiliyor çünkü. Link içerisinde id var, id de karşılaştırılabilir diye düşündüm. Komple link de karşılaştırılabilir. Yardımcı olursanız çok sevinirim.
Şu kısma ekleme yapabilirim, fikir olması için kodları paylaşıyorum.

if (link == ""):
                control = "false"
            else:
                control = "true"

            if control == "true":
                mySql_insert_query = "INSERT INTO ad_l(id,count,clist_id,brand_model,ad,created_at,updated_at,status) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
                val = (id, count, clist_id, brand_model, ad_link, link, created_at, updated_at, status)

                #cursor = scrap_db.cursor()
                cursor.execute(mySql_insert_query, val)  # cursor.executemany(mySql_insert_query, tuple_of_tuples)

                scrap_db.commit()
                print(cursor.rowcount, "Record inserted successfully into *ad_l* table")

Böyle bir şey ekledim ancak olmadı.

        if exists ("SELECT ad FROM ad_l WHERE AD = ad_link"):
            print('Aynı link var, eklenmiyor')
            pass
        else:
            print('Yeni kayıt, ekleniyor')

Db ye kayıt edeceğin verinin db de olup olmadığını sorgulamalısın (select) verinin neresi
önemliyse artık oradan bir eşleşme çıkarsa if ile mesaj yazdır db de kayıtlı diye, eşleşme yoksa else ile de (insert) yapmalısın.

1 Beğeni

https://stackoverflow.com/a/61446794/3942172

Veri tabanının kendisinde olan araçları kullanmak yerine programdan kontrol etmeye çalışma gafletine düşmeyin.

Bu senaryoyu kendi durumuma nasıl uyarlarım bilemedim :confused:

İlgili alanı unique yaptım, şu anda sağlıklı ilerliyor. Bir hata durumunda yardımlarınıza başvururum. Teşekkür ederim.

Aslına bakarsak benim python bilgim kodu anlamak için yeterli değil bu yüzden çok yardımı olmayabilir ama şöyle bir hata var:
“İf” komudundan sonra gelen “else” nin konumu yanlış bu nedenle “if” kodunun içinde görünüyor
ne kadar yardımı olur bilemem iyi günler

1 Beğeni