如何消除冗余

时间:2016-03-26 14:11:09

标签: php mysql

如何避免在mysql表中冗余插入数据,例如在Id 003

STUDENT ID              SUBJECT
003                     MATHS
003                     MATHS
004                     ENGLISH
003                     MATHS
004                     SCIENCE 

1 个答案:

答案 0 :(得分:2)

数据库可以使用唯一索引或约束(在功能上等效)为您验证数据:

create unique index idx_t_student_subject on t(student, subject);

您还可以在创建表时将其定义为约束:

create table t (
    . . .
    constraint unq_t_student_subject unique (student, subject)
    . . .
);

当您尝试插入重复的行时,您将收到错误。

注意:主键具有相同的效果,并将每列定义为NOT NULL