Doctrine ORM nativeQuery:如何重命名 table

Doctrine ORM nativeQuery: How to rename table

我正在尝试使用 nativeQuery 重命名 table,如下所示:

$rsm = new ResultSetMapping();
$query = $em->createNativeQuery('RENAME TABLE `'.$oldname.'` TO `'.$newname.'`', $rsm);
$result = $query->getResult();

奇怪的是 table 被重命名了,但最后一行抛出错误:

Undefined offset: 1
.\vendor\doctrine\dbal\src\Driver\PDO\Exception.php:20
.\vendor\doctrine\dbal\src\Driver\PDO\Result.php:107
.\vendor\doctrine\dbal\src\Driver\PDO\Result.php:38
.\vendor\doctrine\dbal\src\Result.php:59

我错过了什么?

您尝试像 DML 一样执行 DDL 查询 SELECT。不会有结果集作为此类操作的结果

假设 $emEntityManager 执行此操作

$em->getConnection()->executeQuery($yourQuery);

没有 ResultSetMapping 也没有任何其他东西。

请注意,这不是我自己测试过的,也不是 Doctrine 的活跃用户。我确信原因,而不是代码段是否有效(用谷歌搜索出来)