Merhabalar;
Ufak bir program yazmaya çalışıyorum ancak veri tabanında FOREIGN KEY ile PRIMARY KEY bağlantısında sorun yaşıyorum.
Kodları aşağıya ekliyorum
Özetle durum şu
3 tane tablom var
##urunler## ##fiyatlar## ##marketler##
PK *urun_no PK *fiyat_no PK *market_no
barkod_no fiyat market_adi
urun_adi FK market_no sube_adi
FK fiyat_no
kaydı oluşturmak için ; barkod_no, urun_adi, market_adi, sube_adi, fiyat bilgileri giriliyor.
Bu sırada oluşan marketler tablosundaki market_no bilgisinin fiyatlar tablosundaki market_no sütununa ,
fiyatlar tablosundaki fiyat_no bilgisinin urunler tablosundaki fiyat_no sütununa otomatik olarak kaydolmasını istiyorum.
Bunun için aşağıdaki gibi bir tablo oluşumu yazdım.
*Kayıt kodları da bir aşağıda.
Bunu çalıştırıp kaydet dediğimde “sqlite3.IntegrityError: NOT NULL constraint failed: fiyatlar.market_no” hatasını alıyorum.
Nerede yanlış yaptım yardımcı olabilir misiniz?
veriler.execute("CREATE TABLE IF NOT EXISTS "
"marketler(market_no INTEGER PRIMARY KEY AUTOINCREMENT, "
"market_adi VARCHAR, "
"sube_adi VARCHAR)")
veriler.execute("CREATE TABLE IF NOT EXISTS "
"fiyatlar(fiyat_no INTEGER PRIMARY KEY AUTOINCREMENT, "
"fiyat FLOA,"
"market_no INTEGER NOT NULL ,
FOREIGN KEY (market_no) REFERENCES marketler(market_no))")
veriler.execute("CREATE TABLE IF NOT EXISTS "
"urunler(urun_no INTEGER PRIMARY KEY AUTOINCREMENT, "
"barkod_no VARCHAR, "
"urun_adi VARCHAR,"
"fiyat_no INTEGER NOT NULL ,
FOREIGN KEY (fiyat_no) REFERENCES fiyatlar(fiyat_no))")
*KAYIT OLUŞTURMAK İÇİN YAZDIĞIM KODLAR
veriler.execute("INSERT INTO marketler(market_adi, sube_adi)
VALUES ('{}', '{}')".format(market_adi.get(), sube_adi.get()))
veriler.execute("INSERT INTO fiyatlar(fiyat)
VALUES('{}')".format(fiyat.get()))
veriler.execute("INSERT INTO urunler(barkod_no, urun_adi)
VALUES ('{}' , '{}')".format(barkod_no.get(), urun_adi.get()))
baglan.commit()