この前からLoto6の予測をやりやすいようにデータベースを作成し、データの抽出や加工ができるようにしています。
しかし、出来上がってから気がついた事がありました。それは主キーが設定していないと言うことです。
主キーとは何かと言うと、Qiitaには以下のように書かれています。
主キーとは、データベースにおいて特定のテーブル内の各レコードを一意に識別するために使用されるフィールドまたはフィールドの組み合わせのことを指します。主キーは、重複する値を持つことができず、かつNULL値を持つことができないことが要件となります。
主キーは、テーブル内の他のフィールドとの関係性を表現するために使用される外部キーと対比されます。主キーを使用することで、データベース内のデータの整合性を維持することができます。引用:Qiita
つまり、データベース内のデータの整合性を取る為には必要なキーなんですね。
しかし、データベースを作成しテーブルを作り、データを注入してしまいましたが、作ったテーブルにはこの主キーが設定されていないことに気がつきました。
通常はテーブル作成時に、次のようなSQL文例のようにテーブル作成時に主キーを設定します。
create table user(id int primary key, name varchar(10));
しかし、今回は主キーの設定を忘れてしまったので後から設定をしなければいけません。
ではどうしたらよいのでしょうか。
その場合には、別のSQL文で既存のテーブルのCOLに主キーを割り当てるのです。
そのSQL文は以下となります。
ALTER TABLE テーブル名 ADD PRIMARY KEY (COL);
このSQL文を使用して実際に行ってみると、結果は以下の通りにnumのCOLがNULが禁止されてPRIのキーが設定されました。
これで主キーが設定されましたので、今後はデータベース内の整合性がちゃんとキープされていくでしょう。
今回は今までと異なり、既にできているテーブルのCOLに主キーを設定する方法について書いてみました。これも自分への備忘録です。