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

Zahoďte cizí klíč, pouze pokud existuje

Pokud chcete zahodit cizí klíč, pokud existuje, a nechcete používat procedury můžete to udělat takto (pro MySQL):

set @var=if((SELECT true FROM information_schema.TABLE_CONSTRAINTS WHERE
            CONSTRAINT_SCHEMA = DATABASE() AND
            TABLE_NAME        = 'table_name' AND
            CONSTRAINT_NAME   = 'fk_name' AND
            CONSTRAINT_TYPE   = 'FOREIGN KEY') = true,'ALTER TABLE table_name
            drop foreign key fk_name','select 1');

prepare stmt from @var;
execute stmt;
deallocate prepare stmt;

Pokud existuje cizí klíč, vložíme příkaz alter table do proměnné a pokud není, vložíme fiktivní příkaz. A pak to provedeme.



  1. Formuláře Oracle v R12/R12.2

  2. Jaké jsou výhody vytváření uložených procedur v SQL a MySQL?

  3. Vyhledejte řetězec v textovém sloupci v MySQL

  4. Jak spravovat dostupnost pokojů na základě obsazenosti dnů nebo měsíců