まず、SQLite3データベースに接続します。以下のコードを使用して、データベースへの接続と作成を行います。
import sqlite3
# データベースに接続
conn = sqlite3.connect('mydatabase.db')
# カーソルを取得
cursor = conn.cursor()
次に、テーブルを作成します。相互参照を持つ2つのテーブルを作成する例を示します。一方のテーブルに他方のテーブルへの参照を追加します。
# テーブル1の作成
cursor.execute('''CREATE TABLE table1
(id INTEGER PRIMARY KEY,
name TEXT,
table2_id INTEGER,
FOREIGN KEY(table2_id) REFERENCES table2(id))''')
# テーブル2の作成
cursor.execute('''CREATE TABLE table2
(id INTEGER PRIMARY KEY,
name TEXT,
table1_id INTEGER,
FOREIGN KEY(table1_id) REFERENCES table1(id))''')
上記の例では、table1
とtable2
という2つのテーブルを作成しています。table1
のtable2_id
列は、table2
のid
列を参照しています。同様に、table2
のtable1_id
列は、table1
のid
列を参照しています。これにより、相互参照が実現されます。
最後に、データベースへの変更を確定し、接続を閉じます。
# 変更を確定
conn.commit()
# 接続を閉じる
conn.close()
これで、SQLite3データベースに相互参照を持つ複数のテーブルが作成されました。