尝试过此代码,但给出的是“ 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”。 我希望它首先通过创建表(如果不存在)然后插入记录来同步工作。
答案 0 :(得分:1)
您可以使用CREATE TABLE ... SELECT
语法:
var query = "CREATE TABLE IF NOT EXISTS projects (project_name VARCHAR(10)) SELECT '" + projectName + "' AS project_name";
答案 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");
}
});
});