zu löschen Ich habe eine viele zu eins-Beziehung zwischen der Userownedshare
-Tabelle und der Share
-Tabelle.Abhängigkeitsregel versucht, Primärschlüsselspalte in SQL-Alchemie auszufüllen, wenn versucht wird, Datensatz
Wenn ich einen Userownedshare
Eintrag aus der Datenbank löschen ich die folgende Fehlermeldung erhalten: AssertionError: Dependency rule tried to blank-out primary key column 'share.ticker'
Dies macht Sinn, da das ticker
Feld in Userownedshare ein Fremdschlüssel in der Tabelle Share
ist. Ich kann jedoch nicht herausfinden, wie ich diesen Fehler beheben kann. Ich denke, dass ich eine kaskadierende Löschung einrichten möchte, wenn ein Share
Eintrag verwaist ist, aber ich kann nicht herausfinden, wie dies zu tun ist, habe ich die Dokumentation gelesen, aber ich am Ende mit verschiedenen Arten von Fehlern, so denke ich, dass ich etwas Triviales vermisse . Hoffe jemand kann helfen, danke!
Hier ist mein Code:
class Userownedshare(db.Model):
id = db.Column(db.Integer, primary_key=True)
ticker = db.Column(db.String(20), db.ForeignKey('share.ticker'))
user = db.Column(db.String, db.ForeignKey('user.username'))
quantity = db.Column(db.Integer, nullable=False)
dividends = db.Column(db.Float, server_default="0.0")
triggerlevel = db.Column(db.Integer)
smsalert = db.Column(db.Boolean)
emailalert = db.Column(db.Boolean)
portfolioid = db.Column(db.String(50))
name = db.relationship('Share', backref='userownedshare' , foreign_keys=[ticker])
class Share(db.Model):
id = db.Column(db.Integer)
name = db.Column(db.String(50), nullable=False)
ticker = db.Column(db.String(50), db.ForeignKey('userownedshare.ticker'), primary_key=True)
tickermatch = db.relationship('Userownedshare', backref='share', foreign_keys=[ticker])