【发布时间】:2016-01-17 08:42:44
【问题描述】:
我有几个外键的表。我需要使用 queryBuilder 截断此表和相关表。
我找到了两个解决方案:
所以,我尝试实施第一个解决方案。 According to this example:
$connection->executeQuery('SET FOREIGN_KEY_CHECKS = 0;');
$truncateSql = $platform->getTruncateTableSQL('table_name');
$connection->executeUpdate($truncateSql);
$connection->executeQuery('SET FOREIGN_KEY_CHECKS = 1;');
但是如果我需要为每个 PDO 实现这个方法,这会有点麻烦。
第二种解决方案看起来更紧凑,但我不知道如何使用 queryBuilder 正确执行 ALTER TABLE 请求。
所以,我的问题如下:
- 如何在 Symfony2 中使用 queryBuilder 进行 ALTER TABLE 请求?
- 为每个 PDO 截断表的最紧凑方法是什么?
- 是否有任何紧凑的方法不仅可以截断当前表,还可以截断每个相关表?
非常感谢您的帮助!
更新: 另外,我找到了this,但这看起来已经过时了。
我找到了一些解决方案,但我不确定它是 Symfony 的方式。您可以在下面看到我的解决方案。
【问题讨论】:
-
关于您提出的第二种解决方案,请注意,在 Stack Overflow 页面中,有人说“请注意,如果不删除外键约束,您仍然无法截断表”