Когда
портятся хорошие выражения
47
дя из описаний таблиц
person
и
favorite_food
, у вас есть много возмож
ностей наделать ошибок при вставке или изменении данных. В
этом
разделе приведены некоторые из распространенных ошибок и показа
но, как сервер MySQL будет на них реагировать.
Неуникальный первичный ключ
Поскольку описания таблиц включают
создание ограничений первич
ного ключа, MySQL проверит, чтобы в таблицы не вводились дублиру
ющие значения. Следующее выражение
делает попытку обойти свой
ство автоприращения столбца
person_id
и создать в таблице
person
еще
одну
строку со значением
person_id
, равным 1:
mysql>
INSERT INTO person
>
(person_id, fname, lname, gender, birth_date)
>
VALUES (1, 'Charles','Fulton', 'M', '19680115');
ERROR 1062 (23000): Duplicate entry '1' for key 1
Ничто не мешает (по крайней мере, в текущей схеме)
создать две стро
ки с идентичными именами, адресами, датами рождения и т. д., если
в столбце
person_id
у них разные значения.
Несуществующий внешний ключ
Описание таблицы
favorite_food
включает создание ограничения
внешнего
ключа для столбца
person_id
. Это ограничение гарантирует,
что все значения
person_id
,
введенные в таблицу
favorite_food
, имеют
ся в таблице
person
. Вот что произошло бы при попытке создания стро
ки, нарушающей это ограничение:
mysql>
INSERT INTO favorite_food (person_id, food)
>
Достарыңызбен бөлісу: