我想从Node.js
动态创建MySQL中的表con.query('CREATE TABLE ?', req.params.username + '(id INT(100) NOT NULL
AUTO_INCREMENT, name TINYTEXT, PRIMARY KEY(id))', function (err, result) {
if (err) console.log(err);
else console.log('Table created ' + result);
});
当查询硬编码时,
con.query('CREATE TABLE Sample (id INT(100) NOT NULL AUTO_INCREMENT, name
TINYTEXT, PRIMARY KEY(id))', function (err, result) {
if (err) console.log(err);
else console.log('Table created ' + result);
});
有效。
那么,我的问题是如何动态创建表?
答案 0 :(得分:2)
您正在尝试使用参数化查询来替换表名。你不能那样做。你也不能用列名做。
您需要使用不带?
参数的数据定义语言编写包含文本字符串的代码,然后运行它。在JS中使用字符串操作很容易。
var tableDef = 'CREATE TABLE '+ req.params.username + ' (id INT(100) NOT NULL AUTO_INCREMENT, name TINYTEXT, PRIMARY KEY(id))';
con.query(tableDef, ...etc )