创建表 sql 命令 node.js 失败

Posted

技术标签:

【中文标题】创建表 sql 命令 node.js 失败【英文标题】:create table sql command node.js failing 【发布时间】:2021-05-26 23:04:43 【问题描述】:

我有这个创建表函数,它会在必要时创建一个表,但是表的实际创建失败了。仅当其中有特殊字符时才会失败,这很烦人!有没有解决的办法?这是我的查询:

 var createNewReportTableForChild = "create table " + tableName + " (report1 varchar(256), report2 varchar(256), report3 varchar(256), report4 varchar(256), report5 varchar(256), report6 varchar(256), report7 varchar(256), report8 varchar(256), report9 varchar(256), report10 varchar(256))"
ibmdb.open(ibmdbconnMaster, function(err, conn) 
    if (err) return console.log(err);
    conn.query(createNewReportTableForChild, function(err, rows) 
        if (err) 
            console.log(err);
        

        // res.render("admin-dashboard", 
        //     page_title: "viewStudents",
        //     userName: req.session.username,
        //     FN: req.session.firstname,
        //     LN: req.session.lastname,
        // );
        res.redirect('/admin-dashboard')

        conn.close(function() 
            console.log("closed the function /createNewReportsTableForChild");
        );
    );
);

变量tableName 如下所示:info@inderatech.com。它始终是一个电子邮件地址。我应该让它成为一个唯一的数字字符串吗?

【问题讨论】:

【参考方案1】:

在表名周围加上“引号”。现在查询的方式看起来像

create table some name (report1...

而不是

create table "some name" (report1...

试试

var createNewReportTableForChild = "create table \"" + tableName + "\" (report1...
# Or
var createNewReportTableForChild = "create table '" + tableName + "' (report1...

【讨论】:

以上是关于创建表 sql 命令 node.js 失败的主要内容,如果未能解决你的问题,请参考以下文章

仅当 ANSI sql 不存在表时才创建表

javascript 通过Node.js任务为JavaScript创建精灵表。

orcl表空间创建失败ORA-00604:递归SQL级别1出现错误ORA-01013这是哪的问题

SQL Sever表添加主键失败

node.js db-migrate 创建扩展问题

sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效