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

标签 mysql

试过此代码但它给出“ER_PARSE_ERROR

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

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

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

注意:我在Nodejs中使用mysql模块

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

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

最佳答案

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

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

Demo on rextester

关于mysql - SQL检查表是否存在然后创建表并插入到同一个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52809207/

相关文章:

MySQL:更改表后表崩溃

mysql - 我不明白这段 MySQL 表示法,随后不知道如何在 Postgresql 中做到这一点

mysql - 数据库的最新结果

php - 实时抓取彩票开奖数据 - 我能找到合适的结果吗?如何整合这么多来源?

MySQL查询三张表

mysql - SQL返回属性不存在的连接的默认值

mysql - 复杂的sql树行

mysql - 在 where 子句中使用相同的列

mysql - 按瑞典语字母顺序对文本进行排序

mysql - 如何从csv中插入记录到mysql?