主キーについて


PHPアプリケーションは、MySQLのデータベースをバックエンドとする場合が多い。

主キーの選択
主キーは、テーブルの中で1つのレコードを特定するために使われる。
このため主キーは重複しないことを保証しなければならない。
そのためには、以下の太字を追加する。

CREATE TABLE author(
    id INT NOT NULL AUTO_INCREMENT,
    name TEXT,
    PRIMARY KEY(id)
);

ここでは、IDのフィールドがnullでなく、かつ自動加算されると指定されている。

以下のようにSELECT文を実行すると、最後に生成された連番の値を知ることができる。

SELECT LAST_INSERT_ID();

主キーが指定されていると、テーブルに索引が生成される。
これにより検索が高速化できる。

また、複数のクライアントが同時に接続するサイトでは、
SELECT文で最大のIDを調べてからINSERTする間に、
別のクライアントがSELECT文を実行している可能性がある。