おこっていること
MAMPでmysqlとPHPを使用したアプリケーションを開発しているときにデータベースをphpmyadminからinsertなどしていた時に起こったことです。
データベース構造
カラム名 | 備考 |
---|---|
id | NOT NULL AUTOINREMENT PRIMARYKEY |
name | NOT NULL |
NOT NULL PRIMARY KEY | |
pass | NOT NULL |
graduate_year | NOT NULL |
role | NOT NULL |
message |
要はプライマリーキーを複数カラムに指定したいのですが、どうやらそれを行うには主キー制約というものが必要なようです。(間違っていたら指摘していただけると幸いです。)
そこで、 以下のようにsql文を発行してみました。
sql
1CREATE TABLE users( id int AUTO_INCREMENT NOT Null, mail varchar(100) NOT NULL,name varchar(30) NOT Null,pass varchar(100) NOT Null, graduate_year int NOT Null, role varchar(20) NOT Null, message varchar(100) NOT Null,PRIMARY KEY(id,mail))
作成後、インサート文で挿入してみると、mailの部分を重複させて登録させているのにも関わらず、成功してしまい同じメールアドレスが複数存在する状態になってしまっています。
これはもしかして、PRIMARY KEYを複数指定するとその指定したもの同士で重複をチェックするから、(=毎回IDが違うから重複とみなされない)のでしょうか。
もしそうなのであれば、idとmailを別にPRIMARY KEYとして設定したいのですがどうすればいいのでしょうか。
教えていただけると幸いです。
したいこと
複数テーブルにPRIMARY KEYを設定したい。
回答2件
あなたの回答
tips
プレビュー