Die FOREIGN_KEY_CHECKS
ist ein großartiges Werkzeug, aber wenn Sie wissen müssen, wie Sie dies tun können, ohne Ihre Tabellen zu löschen und neu zu erstellen. Sie können ein SELECT
verwenden Anweisung ON information_schema.TABLE_CONSTRAINTS
um festzustellen, ob der Fremdschlüssel existiert:
IF NOT EXISTS (
SELECT NULL
FROM information_schema.TABLE_CONSTRAINTS
WHERE
CONSTRAINT_SCHEMA = DATABASE() AND
CONSTRAINT_NAME = 'fk_rabbits_main_page' AND
CONSTRAINT_TYPE = 'FOREIGN KEY'
)
THEN
ALTER TABLE `rabbits`
ADD CONSTRAINT `fk_rabbits_main_page`
FOREIGN KEY (`main_page_id`)
REFERENCES `rabbit_pages` (`id`);
END IF