私はテーブルを持っています
table userinfo (
user,
email,
address,
primary key(user)
);
このテーブルの「user」フィールドは、挿入時の「email」と同じです。ただし、ユーザーは後で「電子メール」を変更できます。したがって、電子メールも一意にし、電子メールがテーブルにすでに存在する場合にクエリを挿入して失敗するようにします。
出来ますか?
よろしくお願いします。これはほんの一例です。
私はテーブルを持っています
table userinfo (
user,
email,
address,
primary key(user)
);
このテーブルの「user」フィールドは、挿入時の「email」と同じです。ただし、ユーザーは後で「電子メール」を変更できます。したがって、電子メールも一意にし、電子メールがテーブルにすでに存在する場合にクエリを挿入して失敗するようにします。
出来ますか?
よろしくお願いします。これはほんの一例です。
はい、UNIQUE制約を追加します
table userinfo (
user,
email,
address,
primary key(user),
CONSTRAINT tb_uq UNIQUE (email)
);
これで、テーブルは一意USERで一意になりEmailます。
テーブルに複数のインデックスを作成できます。したがって、必要な列だけに2つの一意のインデックスを作成すると、希望どおりに機能します。複数の列に1つのインデックスを作成する場合、一意である必要があるのはそれらの列の組み合わせです。