sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Tilføj begrænsning, hvis den ikke eksisterer

FOREIGN_KEY_CHECKS er et fantastisk værktøj, men hvis du har brug for at vide, hvordan du gør dette uden at tabe og genskabe dine borde. Du kan bruge en SELECT sætning PÅ informationsskema.TABLE_CONSTRAINTS for at afgøre, om den fremmede nøgle findes:

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


  1. VIS TABELLER i MariaDB

  2. Opdater flere kolonner i SQL

  3. PHP til at gemme billeder i MySQL eller ej?

  4. Sådan fungerer DATE_FORMAT() i MariaDB