使用Node.js在MySQL中创建表

时间:2016-06-29 19:03:52

标签: mysql node.js

我想从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);
                    });

有效。

那么,我的问题是如何动态创建表?

1 个答案:

答案 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 )