如何消除冗余


How do i eliminate redundancy

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

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

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

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

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

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

当你试图插入一个重复的行时,你会得到一个错误。

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