Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Einschränkung hinzufügen, falls nicht vorhanden

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