Invalid Semantics

Here, we’ll discuss an example of an invalid semantic.

We'll cover the following...

In SQLAlchemy, it’s possible to use foreign keys, relationships, and constraints to prevent many of the issues described in the previous lesson.

Example database

For reference, here are the table definitions and initial values without all of the extra steps.

Press + to interact
from sqlalchemy import create_engine, Column, types
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
connection_string = "sqlite:///database.db" # for SQLite, local file
db = create_engine(connection_string)
base = declarative_base()
class Book(base):
__tablename__ = 'books'
id = Column(types.Integer, primary_key=True)
author = Column(types.String(length=50))
title = Column(types.String(length=120), nullable=False)
available = Column(types.Boolean, nullable=False)
class BirthYear(base):
__tablename__ = 'birth_years'
author = Column(types.String(length=50), primary_key=True)
birth_year = Column(types.Integer, nullable=False)

As the tables are now, there is nothing to prevent a ...