我使用node.js和mysql模块。当我执行以下代码时,我希望将table_name
设置为变量,而不是静态表名。例如,我希望table_name是今天的日期。
connection.query(
"CREATE TABLE `<table_name>` (" +
" `title` varchar(50) NOT NULL,"+
" `text` varchar(50),"+
" `created` timestamp NULL,"+
" PRIMARY KEY (`title`));"
);
是否可以将表名设置为node.js的mysql模块中的变量?
最好的问候
答案 0 :(得分:6)
模块内置了处理案例的方法,你需要转义这样的变量:
var tableName = 'THETABLE';
connection.query('CREATE TABLE ?? (column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size))', [tableName], function (error, results) {
// error will be an Error if one occurred during the query
// results will contain the results of the query (if any)
});
您可以在此处详细了解此功能:
https://github.com/felixge/node-mysql/#escaping-query-identifiers
答案 1 :(得分:0)
您使用的是没有有效的sql create table语法。
你想要做的是这样的事情:
while (size ())
{
erase(begin());
}
如果您想稍后编写项目,则必须使用INSERT INTO
答案 2 :(得分:-1)
async function createTable(db_connection,tableName) {
await new Promise((resolve, reject) => {
db_connection.connect(function(err) {
if (err) {
return console.error('error: ' + err.message);
}
db_connection.query('CREATE TABLE ?? (doc_source_type varchar(255) default null,
doc_id varchar(255) default null, company varchar(255) default null)',
[tableName],
function(err, results) {
if (err) {
console.log(err.message);
reject(err);
}
else{
console.log("Table created successful");
resolve(results);
}
});
});
});
}
或者你甚至可以尝试不同的方法
async function setTable(db_connection,tableName) {
await new Promise((resolve, reject) => {
db_connection.connect(function(err) {
if (err) {
return console.error('error: ' + err.message);
}
let createTodos =`create table if not exists ??(
id int primary key auto_increment,
doc_id varchar(255) default null,
doc_source_type varchar(255) default null,
company varchar(255) default null,
customer varchar(255) default null,
rubric_version varchar(255) default null,
assessment_type varchar(255) default null,
indexed_at datetime default null,
assessment_date datetime default null,
industry_type varchar(255) default null
)`;
//console.log(createTodos);
db_connection.query(createTodos, [tableName], function(err, results) {
if (err) {
console.log(err.message);
reject(err);
}
else{
console.log("Table created successful");
resolve(results);
}
});
});
});
}