Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQLAlchemy StaleDataError ORM के माध्यम से डाली गई वस्तुओं को हटाने पर sqlalchemy.orm.exc.StaleDataError

मुझे लगता है कि मैं एक संकेत दे सकता हूं इस समस्या पर। संक्षिप्त संस्करण है:"समस्या को हल करने के लिए आपको शायद डेटाबेस में डेटा को मैन्युअल रूप से संशोधित करना होगा"।

लंबा संस्करण:मुझे SQLite के साथ एक समान समस्या थी। मेरे पास निम्न तालिका मैप की गई थी:

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')))

वह समग्र प्राथमिक कुंजी देखें? मैं किसी तरह एक ही नुस्खा_शीर्षक/उत्पाद_शीर्षक जोड़ी के साथ दो पंक्तियों को सम्मिलित करने में कामयाब रहा। मुझे यह जानकर आश्चर्य हुआ कि इस तालिका के लिए SQLite के पक्ष में एक भी बाधा नहीं थी (कोई प्राथमिक कुंजी नहीं, कोई फ़ारेन कुंजी नहीं - यह सिर्फ एक सादा वेनिला तालिका थी), लेकिन ठीक है - जिस तरह से sqlalchemy जाता है, मेरा नहीं व्यापार।

फिर जब मैंने उन दो पंक्तियों को शामिल करते हुए एक स्थायी वस्तु को हटाने की कोशिश की, तो sqlalchemy ने देखा कि इसकी बाधाओं का उल्लंघन किया गया था और इसने 'StaleDataError' को फेंक दिया। अंत में मुझे सिर्फ 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. MySQL लाइक इन ()?

  2. INT(3) कॉलम मान को उचित लंबाई में क्लिप नहीं कर रहा है और पूर्ण मान डालने की इजाजत दे रहा है - MySQL

  3. MySQL मैच मुद्दा

  4. MySQL - लंबाई () बनाम char_length ()

  5. mysql ऑटो इंक्रीमेंट एरर