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

Slip kun fremmednøgle, hvis den findes

Hvis du vil slippe fremmednøgle, hvis den findes og ikke ønsker at bruge procedurer du kan gøre det på denne måde (for 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;

Hvis der er fremmednøgle, sætter vi alter table-sætning i variabel, og hvis der ikke er, sætter vi en dummy-sætning. Og så udfører vi det.



  1. Er der ANY_VALUE-kapacitet til mysql 5.6?

  2. python og mysql på mac os x

  3. Oracle fejlhåndtering

  4. Hent id fra en betinget INSERT