MySQL约束如何变得无效?

时间:2016-06-21 05:40:42

标签: mysql constraints

我们有两张桌子。一个叫做“站”,有几列;其中一个是“CityCode”。第二个表称为“StationTimezone”,它还有“CityCode”列。 在StationTimezone上,我们在“CityCode”上定义了一个约束 - 它在“Station”中引用了“CityCode”。

$csv = array_map('str_getcsv', file('docs/foo.csv'));
$headers = $csv[0];
unset($csv[0]);
$csvarray = [];
foreach ($csv as $row) {
    $newRow = [];
    foreach ($headers as $k => $key) {
        $newRow[$key] = htmlentities ($row[$k]);
    }
    $csvarray[] = $newRow;
}

print_r($csvarray);

我们现在看到,StationTimezone已经获得了未定义到Station的条目。这意味着在删除约束后,我们无法重建它。 现在我有了一个问题,我们怎么能遇到这个问题。如何在不将“CityCode”添加到“Station”的情况下将“CityCodes”添加到StationTimezone?

1 个答案:

答案 0 :(得分:0)

可以使用foreign_key_checks暂时禁用外键检查:

SET foreign_key_checks = 0;
DELETE FROM Station;
SET foreign_key_checks = 1;

您或其他人可能会这样做,可能是偶然或出于某种原因(如批量数据插入),但对于这样的可能影响,通常不建议这样做。