Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Dodaj ograniczenie, jeśli nie istnieje

FOREIGN_KEY_CHECKS to świetne narzędzie, ale jeśli potrzebujesz wiedzieć, jak to zrobić bez upuszczania i ponownego tworzenia tabel. Możesz użyć SELECT oświadczenie ON information_schema.TABLE_CONSTRAINTS aby ustalić, czy klucz obcy istnieje:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie zezwalaj na odwrócony złożony klucz podstawowy w MySQL

  2. Błąd instalacji Ruby gem mysql2

  3. Równoczesne aktualizacje MySQL

  4. UPDATE Ten sam wiersz po aktualizacji w wyzwalaczu

  5. SELECT INTO i Niezadeklarowany błąd zmiennej