Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara tercepat untuk menyisipkan objek jika tidak ada dengan SQLAlchemy

Jika objek semacam itu unik berdasarkan kombinasi kolom, Anda perlu menandainya sebagai kunci primer komposit. Tambahkan primary_key=True parameter kata kunci ke setiap kolom ini, hapus id . Anda kolom sama sekali:

class Showing(Base):
    __tablename__   = "showings"

    time            = Column(DateTime, primary_key=True)
    link            = Column(String)
    film_id         = Column(Integer, ForeignKey('films.id'), primary_key=True)
    cinema_id       = Column(Integer, ForeignKey('cinemas.id'), primary_key=True)

Dengan begitu database Anda dapat menangani baris-baris ini dengan lebih efisien (tidak perlu kolom yang bertambah), dan SQLAlchemy sekarang secara otomatis mengetahui jika dua contoh Showing adalah hal yang sama.

Saya percaya Anda kemudian dapat menggabungkan Showing baru Anda kembali ke sesi:

def AddShowings(self, showing_times, cinema, film):
    for showing_time in showing_times:
        self.session.merge(
            Showing(time=showing_time[0], link=showing_time[1],
                    film=film, cinema=cinema)
        )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel:Dapatkan Objek Dari Koleksi Berdasarkan Atribut

  2. Bagaimana cara menampilkan batasan unik dari tabel di MySQL?

  3. Bagaimana cara LOAD DATA INFILE di mysql dengan col pertama menjadi Auto Increment?

  4. BUAT TABEL JIKA TIDAK ADA gagal dengan tabel yang sudah ada

  5. Panduan Merancang Database Untuk Sistem Manajemen Karyawan Di MySQL