2016-03-26 2 views
0

Как избежать избыточной вставки данных в MySQL таблицы, например, в Id 003Как я устранить избыточность

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

Вы можете определить «ИДЕНТИФИКАТОР СТУДЕНТА» как «ПЕРВИЧНЫЙ КЛЮЧ» или «УНИКАЛЬНЫЙ ИНДЕКС» –

ответ

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.

Смежные вопросы