注册

为什么nodejs和disql客户端行为不一致

怎么肥四 2026/07/30 397 1

各位大佬
desc test;
LINEID NAME TYPE$ NULLABLE
1 ID INTEGER N
2 NAME VARCHAR(100 CHAR) Y
id为int auto_increment primary key
SQL语句:

create temporary table if not exists mytab_tmp(id int); insert into test(name) values('name'); insert into mytab_tmp(id) values(scope_identity()); select * from mytab_tmp;

以上SQL语句在disql中执行没有问题:最后的select * from mytab_tmp能返回结果集;使用dmdb的nodejs客户端执行,最后的select * from mytab_tmp无行返回,js脚本如下:

import dmdb from 'dmdb' async function dmtest() { const pool = await dmdb.createPool({ connectString: 'dm://ne:Ne123456@localhost:5236' }) const con = await pool.getConnection() const sqls = [ `create temporary table if not exists mytab_tmp(id int);`, `insert into test(name) values('name');`, `insert into mytab_tmp(id) values(scope_identity());`, `select * from mytab_tmp;` ] for (const sql of sqls) { const re = await con.execute(sql) console.log(re.rows || re.rowsAffected) } con.release() pool.close() } dmtest()

以上js脚本的输出如下

0 1 1 []

这是为什么,按照我的理解:js脚本中的SQL语句都是在一个connection上执行的,也就是说是一个session,应该没问题的啊,不知道哪里出问题了。

回答 0
暂无回答
扫一扫
联系客服