Изучаем sql


Когда портятся хорошие выражения



Pdf көрінісі
бет42/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   38   39   40   41   42   43   44   45   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Когда портятся хорошие выражения
До сих пор все SQLвыражения для работы с данными, приведенные
в этой главе, были правильными и играли по правилам. Однако, исхо


Когда портятся хорошие выражения
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)



Достарыңызбен бөлісу:
1   ...   38   39   40   41   42   43   44   45   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет