MySQL 表名预处理

下列 sql 语句,执行预处理:

let sql = `SELECT * FROM ? LIMIT 1`;
let res = db.execute(sql,['tb_log']);


会出错,原因是预处理后的语句会变成:

SELECT * FROM 'tb_log' LIMIT 1


如果是存储过程,可以让表名等于一个变量:

create PROCEDURE test(tableName varchar(20)) 
BEGIN
 set @tableName = CONCAT(tableName); 
 set @sqlStr = CONCAT('show create table ', @tableName);
 prepare stmt from @sqlStr;
 execute stmt ;
 deallocate prepare stmt;
END;
真诚赞赏,手留余香
赞赏
MySQL
MySQL 批量插入数据时如何解决重复问题
2022-09-17
Node.js,后端
什么是 RESTful API 的幂等性
2022-10-09
ngtwewy
随机推荐
Node.js 的 URL 的模块
WordPress 获取当前主题文件夹的路径
如何使用命令修改 MySQL 数据库名称
JavaScript console 的用法
MySQL 的 sql_mode 模式介绍:为什么 MySQL 中 int,float,double 类型字段插入空字符时自动转为0
Node.js 使用 Jest 和 supertest 做接口测试
macOS 生成 icns 图标
WordPress 按自定义排序的两种方法
Debian11 安装笔记4:安装常用软件
MySQL DATETIME 时间查询和转换

微信联系我

夜间模式切换
回到顶部