2012-01-10 5 views
2

doctrine 2는 일종의 "select into"-syntax를 지원합니까? INSERT INTO table_a select * from table_b from doctrine2

INSERT INTO tbl_temp2 (fld_id) 
    SELECT tbl_temp1.fld_order_id 
    FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; 

이 아직 성공하지 않고, 설명서를 확인 :

순수의 MySQL에서는이 같은 것입니다.

답변

7

버전 2.3.1에서 Doctrine을 참조합니다 : 이 버전에서는 ORM/EntityManager에서 데이터베이스에 대한 현재 연결을 얻을 수 있습니다. 하나의 연결 만 있습니다 (이것은 교리 1에서 다릅니다). 다음은 삽입 - 선택 - 작업 나를 위해 일한 것입니다 : PDO의 compatiblity은 "원시 SQL"을 확인하기 위해 어떻게 코드 예제와 Using Raw SQL with Doctrine : 또한 흥미로운 여기에 답이있다

$db = $this->_em->getConnection(); 
$query = "INSERT INTO table2 (myfield) SELECT table1.myfield FROM table1 WHERE table1.id < 1000"; 
$stmt = $db->prepare($query); 
$params = array(); 
$stmt->execute($params); 

.

+0

동일한 문제가 있고 내 쿼리에이 prepare() 속성이 없습니다. 하지만 내가 그것을 추가 할 때이 오류가 발생했습니다 FatalErrorException : 오류 : 정의되지 않은 메서드 Doctrine \ ORM \ Query :: prepare() 컨트롤러에서 호출 – numerah