Mysql
 sql >> база данни >  >> RDS >> Mysql

Пуснете външния ключ само ако съществува

Ако искате да премахнете външния ключ, ако той съществува и не искате да използвате процедури можете да го направите по този начин (за 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;

Ако има външен ключ, ние поставяме оператор alter table в променлива и ако няма, поставяме фиктивно изявление. И след това го изпълняваме.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверя дали MySQL таблицата е UTF-8 и има storageEngine InnoDB?

  2. Как да създадете JSON обект в MySql с булева стойност?

  3. MySQL GROUP_CONCAT избягва

  4. INSERT в DB DateTime низ

  5. MySQL се присъединява с клауза where