NutzCN Logo
问答 Nutz dao 会丢失在同一线程创建的临时表,同一线程每次执行sql不保证是同一数据库连接吗?
发布于 1814天前 作者 qq_c604b7be 1639 次浏览 复制 上一个帖子 下一个帖子
标签:

同一线程内,前面执行创建临时表脚本,后面马上跟着使用这个临时表,会偶发的报临时表不存在,代码如下:
``java String sqlStr; sqlStr = " CREATE TEMPORARY TABLEtemp_table(\n" + "idVARCHAR ( 32 ) NOT NULL COMMENT 'id',\n" + " PRIMARY KEY (id)\n" + " ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '临时表';"; dao.execute(Sqls.create(sqlStr)); sqlStr = " select " + " fm.id fromtemp_tableAS fm"; dao.execute(Sqls.create(sqlStr)); // 这里会报错,Tabletemp_table` doesn't exist,不是必现,偶发的

```
是因为每次执行sql语句都可能不是同一个连接导致的吗?我其它项目用mybatis没出这个问题,是不是我有什么地方没有考虑到?
另外,没有加事务,是不是加了事务就能保证同一线程的数据库连接不变?有没有在不加事务的情况下也能解决这个问题的方案?

1 回复

加事务才能保证

添加回复
请先登陆
回到顶部