如何避免在mysql表中冗余插入数据,例如在Id 003
中STUDENT ID SUBJECT
003 MATHS
003 MATHS
004 ENGLISH
003 MATHS
004 SCIENCE
答案 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
。