1

Мне было интересно, если бы была возможность проверить целостность ссылки на мою базу данных, не проверяя все вручную. Я должен упомянуть, что я совершенно новичок в SQL и имею задачу проверить ссылочную целостность.PHP SQL Проверка ссылочной целостности для всей базы данных

С поиском Я нашел этот вопрос: how to find records that violate referential integrity

который уже был полезным, но я получил довольно много таблиц и мне было интересно, есть ли более быстрый способ, чем сочинительство сотни самых querys в формате вопроса, который я нашел.

Спасибо за помощь, Йиу

EDIT: Я знаю, что большинство баз данных убедитесь, что автоматически, но я студент, и задача говорит «Эти сценарии должны иллюстрировать обновления и ссылочную целостность базы данных. Пожалуйста, укажите явно, где вы проверяете ссылочную целостность (добавление строк, изменение строк, удаление строк). "

Так что, я думаю, я должен проверить это вручную.

+0

Эти проверки выполняются MySQL автоматически при попытке вставить данные (+ когда вы не отключили проверку вручную, + когда вы добавили ссылочную целостность в свою структуру раньше). – DanFromGermany

+0

отредактировал вопрос –

ответ

1

Большинство баз данных проверяют ссылки, например MySQL. Так что посмотрим на FOREIGN KEY и REFERENCES команду

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

Пример из MySQL страницы

CREATE TABLE parent (
    id INT NOT NULL, 
    PRIMARY KEY (id) 
) ENGINE=INNODB; 

CREATE TABLE child (
    id INT, 
    parent_id INT, 
    INDEX par_ind (parent_id), 
    FOREIGN KEY (parent_id) 
     REFERENCES parent(id) 
     ON DELETE CASCADE 
) ENGINE=INNODB; 

Ребенок автоматически проверять и нуждаются в родительской строки. Если вы удалите родителей, все дочерние строки будут удалены (ON DELETE CASCADE).

+0

Спасибо за ваш ответ. К сожалению, я думаю, что мне приходится делать это вручную по практическим соображениям (см. Отредактированный вопрос). Было бы неплохо, если бы у вас был второй взгляд на него. –

+0

С помощью ALTER TABLE вы можете добавить табличные контуры. – twyly

+0

@ Yíu Никогда не делайте это вручную. Это не должно быть сделано вручную. Это небезопасно. Вам нужна часть: 'FOREIGN KEY (...) ССЫЛКИ (...) ON DELETE ...' или 'ON UPDATE' ... см. Связанные документы. – DanFromGermany