I want to truncate table in symfony 3.0
I am using following approach.
create Entity:User.php
Create Repository : UserRepository.php
/**
* UserRepository
*/
namespace UserBundle\Entity;
use Doctrine\ORM\EntityRepository;
class UserRepository extends EntityRepository {
public function truncateTable() {
$em = $this->getEntityManager();
$dql = 'TRUNCATE TABLE UserBundle:User';
$query = $em->createQuery($dql);
return $query->getResult();
}
}
When i am trying to run this code from controller: I am getting following message:
[2/2] QueryException: [Syntax Error] line 0, col 0: Error: Expected SELECT, UPDATE or DELETE, got 'TRUNCATE'
Anyone can suggest me ?
The code below should help you
$classMetaData = $em->getClassMetadata($className);
$connection = $em->getConnection();
$dbPlatform = $connection->getDatabasePlatform();
$connection->beginTransaction();
try {
$connection->query('SET FOREIGN_KEY_CHECKS=0');
$q = $dbPlatform->getTruncateTableSql($classMetaData->getTableName());
$connection->executeUpdate($q);
$connection->query('SET FOREIGN_KEY_CHECKS=1');
$connection->commit();
}
catch (\Exception $e) {
$connection->rollback();
}