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. ジャンクションテーブルには、別の識別テーブルからの複数の主キーが必要ですか?

    2. パンダto_sqlが重複する主キーで失敗する

    3. LinuxのSQLServerAzure/2022データベース元帳テーブル。

    4. mysqlの2つのタイムスタンプ間の時間差を計算します