💽

PythonのSQLiteで外部キー(Foreign Key)

2022/03/14に公開

PythonのSQLiteで外部キーを使っていきます

まずPersonテーブルを作ります。

db = "./exsample.db"
con = sqlite3.connect(db)
cur = con.cursor()
table = "Person" # テーブル名
sql = f"""create table {table}(
    id integer primary key autoincrement,
    name text,
    age integer,
)"""
cur.execute(sql) # SQL実行
self.con.commit() # 保存

idprimary keyで主キーにし、autoincrementで自動で振り分けるようにしています。

外部テーブルを作ります。

table = "Memo" # テーブル名
sql = f"""create table {table}(
    id integer primary key autoincrement,
    title text,
    content text,
    writer_id integer,
    foreign key(writer_id) references Person(id)
)"""
cur.execute(sql) # SQL実行
self.con.commit() # 保存

foreign key(writer_id) references Person(id)に注目です。
ここで、writer_id integerでいったんintegerの項目をつくり、その下で
foreign key(<項目名>) references <繋ぐテーブル名>(<繋ぐテーブルの項目名>)とします。

Discussion