Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bỏ khóa ngoại chỉ khi nó tồn tại

Nếu bạn muốn bỏ khóa ngoại nếu nó tồn tại và không muốn sử dụng các thủ tục bạn có thể làm theo cách này (đối với 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;

Nếu có khóa ngoại, chúng tôi đặt câu lệnh bảng thay đổi trong biến và nếu không có, chúng tôi đặt một câu lệnh giả. Và sau đó chúng tôi thực hiện nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đếm các giá trị riêng biệt

  2. Php mysql để thực hiện tác vụ sau 30 giây

  3. Tự động xóa dữ liệu đường giao nhau cùng với XÓA bản ghi?

  4. Làm cách nào để sử dụng DATE () trong Doctrine 2 DQL?

  5. Sử dụng PHP để tải tệp lên và thêm đường dẫn đến cơ sở dữ liệu MySQL