반응형
mariadb 노드 사용여러 쿼리를 사용하는 JS 커넥터
MariaDb 데이터베이스에 연결하는 Node.js를 실행하는 서버가 있습니다.Node.js 커넥터를 사용하고 있으며 단일 쿼리에서 정상적으로 작동합니다.그러나 여러 쿼리를 실행하려고 하면 다음 오류가 발생합니다.
{ Error: (conn=8439, no: 1064, SQLState: 42000) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 2' at line 1
sql: SELECT 1; SELECT 2; - parameters:[]
at Object.module.exports.createError (\node_modules\mariadb\lib\misc\errors.js:55:10)
at Packet.readError (\node_modules\mariadb\lib\io\packet.js:506:19)
at Query.readResponsePacket (\node_modules\mariadb\lib\cmd\resultset.js:47:28)
at PacketInputStream.receivePacket (\node_modules\mariadb\lib\io\packet-input-stream.js:73:9)
at PacketInputStream.onData (\node_modules\mariadb\lib\io\packet-input-stream.js:129:20)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
fatal: false,
errno: 1064,
sqlState: '42000',
code: 'ER_PARSE_ERROR' }
현재 사용하고 있는 테스트 코드는 다음과 같습니다.
conn = await pool.getConnection({multipleStatements: true});
conn.query({
multipleStatements: true,
sql: "SELECT 1; SELECT 2;"
}).then((data: any) => {
console.log(data);
conn.end();
});
이 문서에서는multipleStatements
옵션이지만 GitHub Repo를 살펴보니 lib/config/connection-options.js와 GitHub 문서 아래에 있는 유일한 장소입니다.배치 옵션도 알 수 있었습니다만, 인서트 전용인 것 같습니다.
mariadb-connector-nodejs를 사용하여 단일에서 여러 쿼리를 실행하는 방법이 있습니까?query
전화요? 그렇다면 다른 어떤 잘못을 저질러서 멀티스테이트먼트 쿼리만 작동하지 않는 걸까요?
버전:
- MariaDb: 10.1.34-MariaDB
- Node.js: v10.14.2
- mariadb-mariadb-nodejs: mariadb@2.0.2-rc
multipleStatements
는 좋은 옵션입니다만, @syslogstarke가 나타내듯이, 이것은 접속 옵션입니다.
풀 생성을 사용할 때는 풀에서 연결 생성을 처리하므로 풀 + 연결 옵션을 지정합니다.관련 문서 참조
예:
const mariadb = require("mariadb");
const pool = mariadb.createPool({ multipleStatements: true });
pool.query("select 1; select 2")
.then(results => {
//select 1 results
console.log(results[0]); //{ '1': 1 }
//select 2 results
console.log(results[1]); //{ '2': 2 }
})
.catch(err => {
//handle error
});
언급URL : https://stackoverflow.com/questions/54095370/using-mariadb-nodejs-connector-with-multiple-queries
반응형
'it-source' 카테고리의 다른 글
이름이 없는 Java 메서드 호출 (0) | 2022.11.19 |
---|---|
MySQL에서 필드가 null인 경우 0을 반환합니다. (0) | 2022.11.19 |
MariaDB/SQL 레코드 수를 가져오는 가장 효율적인 방법 (0) | 2022.11.01 |
PHP로 JSON 데이터를 생성하는 방법은 무엇입니까? (0) | 2022.11.01 |
Laravel Archent를 사용하여 Multiple Where 절 쿼리를 작성하는 방법 (0) | 2022.11.01 |