6

ほぼ1時間探していましたが、これを行う方法がまだわからないなんて信じられません。私はこれを見つけました:

mysql サーバー 5.0 に存在する場合にのみ制約を削除します

しかし、提供されたリンクは私をそこに連れて行くのに十分な情報ではありません..誰かがコードで例を提供できますか?

アップデート

申し訳ありませんが、元の質問では明確ではありませんでしたが、アプリケーションプログラミングを使用せずに、SQL だけでこれを行う方法を望んでいました。

4

1 に答える 1

2

PHP コードの例:

function removeFK(PDO $pdo, $dbName, fkName)
{
    echo "Removing foreign key '$fkName' from database: $dbName\t";

    $exists = $pdo->query("
        SELECT TRUE
        FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
        WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
            AND TABLE_SCHEMA = '$dbName'
            AND CONSTRAINT_NAME = '$fkName'
        ")->fetchColumn();

    if ($exists === false) {
        echo " [SKIPPING] (FK does not exist)\n";
        return false;
    }

    $pdo->query("USE $dbName");
    $pdo->query("
        ALTER TABLE intelligence_webpage_has_region_keyword
        DROP FOREIGN KEY $fkName");

    echo "[OK]\n";
    return true;
}
于 2014-01-10T10:01:17.507 に答える