Skip to content

Instantly share code, notes, and snippets.

@blohinn
Created April 16, 2018 16:09
Show Gist options
  • Save blohinn/671c60ff5455d6b4e3f97076ca5d60a6 to your computer and use it in GitHub Desktop.
Save blohinn/671c60ff5455d6b4e3f97076ca5d60a6 to your computer and use it in GitHub Desktop.
SQL Alchemy Examples With Cascade Deleting
from . import db
# Many To Many
class Exam(db.Model):
__tablename__ = 'exams'
score = db.Column(db.Integer, nullable=False)
student_id = db.Column(db.Integer, db.ForeignKey('students.id'), primary_key=True)
course_no = db.Column(db.VARCHAR(5), db.ForeignKey('courses.c_no'), primary_key=True)
student = db.relationship('Student', backref=db.backref('exams', cascade='all, delete'))
course = db.relationship('Course', backref=db.backref('exams', cascade='all, delete'))
class Student(db.Model):
__tablename__ = 'students'
id = db.Column(db.Integer, primary_key=True)
full_name = db.Column(db.String(64), nullable=False)
class Course(db.Model):
__tablename__ = 'courses'
c_no = db.Column(db.VARCHAR(5), nullable=False, primary_key=True)
hours = db.Column(db.Integer, nullable=False)
# Many To One
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
full_name = db.Column(db.String(64), nullable=False)
# addresses = db.relationship('Address', backref=db.backref('user'))
class Address(db.Model):
__tablename__ = 'addresses'
id = db.Column(db.Integer, primary_key=True)
address = db.Column(db.String(64), nullable=False)
u_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
user = db.relationship('User', backref=db.backref('addresses', cascade="all, delete"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment