計算機科学のブログ

ほしい物リスト

SQL - SQLite - 複数テーブルのデータベース設計 - 現行テーブルからの脱却 - 外部キーを使ったテーブルの作成

Head First SQL ―頭とからだで覚えるSQLの基本Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 7章(複数テーブルのデータベース設計 - 現行テーブルからの脱却)、p.307(エクササイズ)の解答を求めてみる。

sample6.sql

pragma foreign_keys = on;

create table interests (
    int_id integer primary key autoincrement,
    interest text not null,
    contact_id integer not null,
    constraint my_contacts_contact_id_fk,
    foreign key (contact_id) references my_contacts (contact_id)
);

入出力結果(Terminal, Zsh)

% sqlite3 gregs_list.db < sample6.sql
% sqlite3 gregs_list.db 
SQLite version 3.50.1 2025-06-06 14:52:32
Enter ".help" for usage hints.
sqlite> pragma table_info(interests);
0|int_id|INTEGER|0||1
1|interest|TEXT|1||0
2|contact_id|INTEGER|1||0
sqlite> .quit
%