SQL检查表格是否存在,然后创建表格并插入到同一查询中

时间:2018-10-15 03:01:34

标签: mysql

尝试过此代码,但给出的是“ ER_PARSE_ERROR

错误描述:“ sqlMessage”:“您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,以在'Insert values('Bitcoin')附近使用正确的语法')'在第1行“

var query = "CREATE TABLE IF NOT EXISTS projects (project_name VARCHAR(10)) Insert values ('" + projectName + "')";

我想在“项目表”中插入一个新项目,如果不存在则创建表并插入记录,我可以为此工作编写多个查询,并检查响应是否成功,然后继续下一个查询,但是我寻找一个查询,该查询本身完成了将多个查询连接在一起的所有工作。

注意:我在Node.js中使用mysql模块

该过程应该一个接一个地同步工作,当用户向主体“ project_name”:“ project1”中的数据向路由“ / add_project”发送发布请求时,服务器将记录插入到mysql表项目中,但是如果是第一条记录,它将生成错误“ No such Table”。 我希望它首先通过创建表(如果不存在)然后插入记录来同步工作。

编辑:添加了@Nick建议的屏幕截图 Screenshot

2 个答案:

答案 0 :(得分:1)

您可以使用CREATE TABLE ... SELECT语法:

var query = "CREATE TABLE IF NOT EXISTS projects (project_name VARCHAR(10)) SELECT '" + projectName + "' AS project_name";

Demo on rextester

答案 1 :(得分:0)

有效的代码,但是我需要获得不那么复杂的代码,而无需太多错误处理:

app.post('/add_project_to_database',function(req,res){
var projectName = req.body.project_name;

//CHECK IF PROJECT EXISTS
var query = "Select project_name from projects where project_name = '" + projectName + "'";
return res.send('Project Already Exists!');

//INSERTING PROJECT
// var query = "CREATE TABLE IF NOT EXISTS projects (project_name VARCHAR(10)) Insert values ('" + projectName + "')";
var query = "Insert into projects(project_name) values ('" + projectName + "')";

con.query(query, function(err, result){
    if(err){
        var query_create = "CREATE TABLE IF NOT EXISTS projects (project_name VARCHAR(10))";
        con.query(query_create,function(error,res_create){
            if(error){
                console.log(error);
                res.send(error);
            }
            else{
                console.log("TABlE CREATED");
                con.query(query,function(error_insert,response){
                    if(error_insert){
                        console.log(error_insert);
                        res.send(error_insert);
                    }
                    else{
                        console.log("RECORD INSERTED SUCCESSFULLY !");
                    }
                });
            }
        });
    }else{
        res.send("Successfully Inserted Project");
    }
});
});