MySQL只有在存在的情况下才会删除外键约束

ila*_*sno 6 mysql foreign-keys

现在已经找了差不多一个小时了,我简直不敢相信我还没弄明白怎么做.我发现了这个:

仅当mysql server 5.0中存在约束时才删除约束

但是那里提供的链接没有足够的信息让我在那里..有人可以提供代码示例吗?

UPDATE

对不起,我在原始问题中并不清楚,但我希望有一种方法可以在SQL中执行此操作,而不是使用任何应用程序编程.

Ika*_*ský 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;
}
Run Code Online (Sandbox Code Playgroud)