Основы внешних ключей в MySQL?

Следуя вашему коду, оба не одинаковы.

Заменить

for(j in 2 : (i-1)) 

на

for(j in 2 : i) 
89
задан Macha 16 April 2009 в 17:34
поделиться

3 ответа

Вероятно, было бы лучше отказаться от const (почему вы все равно настаивали бы на этом?) .

В противном случае вам нужно создать конкатенационный итератор. Код довольно большой, подробнее см. в этой теме .

они просто делают некоторые неправильные запросы неудачными.

Если у вас есть такие отношения:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

, то вы не можете удалить отдел , если у него есть сотрудник .

Если указать ON DELETE CASCADE для определения FOREIGN KEY , ссылочные строки будут автоматически удалены вместе со ссылочными.

В качестве ограничения, FOREIGN KEY на самом деле немного замедляет запросы.

Дополнительная проверка должна выполняться при удалении из ссылочной таблицы или вставке в ссылочную таблицу.

ссылочные строки будут автоматически удалены вместе со ссылочными.

В качестве ограничения FOREIGN KEY фактически немного замедляет запросы.

Дополнительная проверка должна выполняться при удалении из ссылочной таблицы или вставке в ссылочную таблицу.

ссылочные строки будут автоматически удалены вместе со ссылочными.

В качестве ограничения FOREIGN KEY фактически немного замедляет запросы.

Дополнительная проверка должна выполняться при удалении из ссылочной таблицы или вставке в ссылочную таблицу.

116
ответ дан 24 November 2019 в 07:18
поделиться

Основными преимуществами использования реальных внешних ключей являются обеспечение целостности данных и возможность настройки каскадных действий для связанных элементов. когда что-то изменяется или удаляется.

Например, представьте, что вы программируете форум. У вас есть таблица «themes» с первичным ключом themes.topic_id , и у вас есть таблица «posts», где сообщения прикрепляются к темам с помощью столбца posts.topic_id , который является внешний ключ к таблице тем.

Это отношение внешнего ключа гарантирует, что каждое сообщение прикреплено к допустимой теме. Если у вашей единственной темы есть ID # 1, в базе данных, прикрепленной к теме № 2, не может быть поста. База данных обеспечивает это.

Для каскадного преимущества, Вы можете настроить его так, чтобы при удалении темы из таблицы тем база данных автоматически удаляла все сообщения в таблице сообщений, которые были прикреплены к этой теме. Это хорошо, потому что он удаляет шаг, который вы должны помнить, чтобы сделать вручную, который может быть довольно сложным, когда у вас есть много связанных таблиц. С внешними ключами все отношения могут быть очищены автоматически.

31
ответ дан 24 November 2019 в 07:18
поделиться

Основным преимуществом является то, что вы можете ограничить, какие значения вы можете ввести в таблицу; если вы попытаетесь ввести значение, которого нет в ссылочной таблице, вы не сможете это сделать.

Кроме того, если вы обновите или удалите значение в ссылочной таблице, вы можете установить его на автоматически обновите значение или удалите в каскаде любую строку, содержащую это значение.

Это действительно отличная функция, использующая ваш код.

6
ответ дан 24 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: