삽입된 ID를 TypeORM & NestJS raw 쿼리: wait connection.manager와 함께 반환합니다.쿼리('삽입처')
TypeORM 및 NestJs에서 원시 쿼리를 사용하여 삽입된 모든 정보 이상의 ID를 반환하려고 합니다.예를 들어 다음과 같습니다.
await connection.manager.query(`INSERT INTO...`)
쿼리를 상수 및 콘솔로깅에 할당해도 도움이 되는 정보는 얻을 수 없습니다.
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 1,
message: '',
protocol41: true,
changedRows: 0
}
보시다시피, 관련 정보는 반환되지 않습니다.insertId
위는 명백히 올바르지 않으며 쿼리의 실제 파라미터에 관계없이 매번 이 값을 반환합니다.
보다 일반적인 Type ORM 쿼리에서 사용할 수 있는 것을 알고 있습니다..return(['name_of_column_you_want_returned']).execute()
그러면 관련 정보가 정상적으로 반환됩니다.raw 쿼리를 사용하여 이 작업을 수행할 수 있는 방법이 있습니까?감사해요!
tl;dr INSERT 명령에서 원시 mariadb 드라이버 응답(OkPacket)을 가져오고 데이터를 보려면 새로운 SELECT 쿼리가 필요합니다.
TypeORM EntityManager를 사용하고 있으며, 문서에는 반환값이 기재되어 있지 않습니다.쿼리용 소스 코드를 보면 반환 유형은 다음과 같습니다.any
raw 쿼리이므로 표준 형식이 아닌 사용 중인 데이터베이스 유형에 따라 오브젝트를 반환할 수 있습니다.
이 경우 MariaDb를 사용하고 있습니다. MariaDb는OkPacket
여기 매뉴얼이 있습니다.https://mariadb.com/kb/en/ok_packet/
언급URL : https://stackoverflow.com/questions/68137015/return-inserted-id-with-typeorm-nestjs-raw-query-await-connection-manager-que
'programing' 카테고리의 다른 글
PDO 데이터베이스 쿼리를 디버깅하는 방법 (0) | 2022.11.07 |
---|---|
2.4 ebean 업데이트 최적 잠금 재생 (0) | 2022.10.30 |
Python: 문자열에서 클래스 속성에 액세스합니다. (0) | 2022.10.30 |
FileReader와 BufferedReader를 모두 닫아야 합니까? (0) | 2022.10.30 |
mysqld.sock을 찾을 수 없음: 소켓 '/var/run/mysqld/mysqld'를 통해 로컬 MySQL 서버에 연결할 수 없습니다.sock' (2 "그런 파일 또는 디렉토리가 없습니다") (0) | 2022.10.30 |