sql >> Databáze >  >> RDS >> Mysql

MySQL:Přidejte omezení, pokud neexistuje

FOREIGN_KEY_CHECKS je skvělý nástroj, ale pokud potřebujete vědět, jak to udělat, aniž byste upustili a znovu vytvořili své stoly. Můžete použít SELECT příkaz ON information_schema.TABLE_CONSTRAINTS zjistit, zda cizí klíč existuje:

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. Oprava „INSERT má více výrazů než cílových sloupců“ v PostgreSQL

  2. Pořadí provádění podmínek v MySQL

  3. MySQL:ALTER IGNORE TABLE porušuje omezení integrity

  4. Jak mohu použít jarní data jpa k dotazu na sloupec jsonb?