我目前正在使用一个有点危险的数据库,在所有错误的地方都定义了外键,我想将它们全部删除,然后从头开始。我不想删除该列,只想删除外键关系。
如何从整个数据库中删除所有外键? (或逐表)。
Thanks.
编辑:忘了说,我有 PHPMyAdmin 可供使用。
下面是一个 PHP 脚本,用于循环 information_schema.key_column_usage 表并删除每个外键:
<?php
$DBNAME = 'your db name';
$USER = 'username';
$PASSWORD = 'your password';
$SERVER = 'localhost'; //Or Write your IP Address
$conexion = new mysqli($SERVER,$USER,$PASSWORD,$DBNAME);
$SQL = "SELECT DISTINCT table_name, constraint_name"
." FROM information_schema.key_column_usage"
." WHERE constraint_schema = '$DBNAME'"
." AND referenced_table_name IS NOT NULL";
$result = mysqli_query($conexion, $SQL);
while($row = mysqli_fetch_assoc($result)) {
mysqli_query($conexion, "ALTER TABLE `$row[table_name]`"
."DROP FOREIGN KEY `$row[constraint_name]`")
or die(mysqli_error());
}
mysqli_close($conexion);
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)