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

SQLAlchemy StaleDataError saat menghapus item yang dimasukkan melalui ORM sqlalchemy.orm.exc.StaleDataError

Saya kira saya bisa memberikan petunjuk pada masalah ini. Versi singkatnya adalah:"Anda mungkin harus mengubah data di Database secara manual untuk menyelesaikan masalah".

Versi yang lebih panjang:Saya memiliki masalah serupa dengan SQLite. Saya telah memetakan tabel berikut:

ingredients = Table('ingredients', metadata,
    Column('recipe_title', Unicode, ForeignKey('recipes.title'), primary_key=True),
    Column('product_title', Unicode, ForeignKey('products.title'), primary_key=True),
    Column('amount', Integer, nullable=False),
    Column('unit_title', Unicode, ForeignKey('units.title')))

lihat kunci primer komposit itu? Saya entah bagaimana berhasil memasukkan dua baris dengan pasangan resep_judul/judul produk yang sama. Saya terkejut mengetahui bahwa tidak ada batasan tunggal di sisi SQLite untuk tabel ini (tidak ada kunci utama, tidak ada kunci fereign - itu hanya tabel vanilla biasa), tapi yah - begitulah sqlalchemy berjalan, bukan milik saya bisnis.

Kemudian ketika saya mencoba menghapus objek tetap yang melibatkan dua baris itu, sqlalchemy melihat bahwa batasannya dilanggar dan melemparkan 'StaleDataError'. Akhirnya saya hanya perlu menghapus satu baris duplikat secara manual dari tabel SQLite.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pencari kata scrabble:membuat trie, menyimpan trie, menggunakan trie?

  2. Bagaimana cara mengambil daftar ID yang dibuat untuk penyisipan massal di Rekaman Aktif?

  3. Mengapa mysqli fetch() mengembalikan hasil kosong dari kolom teks panjang?

  4. Cara membuat database MySQL dan mengatur hak istimewa

  5. Memilih rentang tanggal MySQL dengan date_format