当前位置: 代码迷 >> 综合 >> [Err] 1007 - Can‘t create database ‘bug‘; database exists!
  详细解决方案

[Err] 1007 - Can‘t create database ‘bug‘; database exists!

热度:52   发布时间:2023-11-22 05:16:10.0

首先,写SQL语句的第一步是创建数据库

#创建一个demo数据库
CREATE DATABASE demo;

我们写完创建数据库的SQL语句之后需要运行这句语句

[SQL]CREATE DATABASE demo;
[Err] 1007 - Can't create database 'demo'; database exists

你会发现,它报错了,这个错误是:不能创建“demo”数据库,这个数据库已存在!

我们创建的数据库会比较繁多,所以我们可以在创建数据库的时候使用EXISTS这个关键字来解决这个问题,它是用来判断是否存在某个你需要达到的条件;

 

这时,我们可以使用exists关键字来判断是否存在“demo”数据库

#创建一个demo数据库
CREATE DATABASE if exists demo;

运行之后:

[SQL]CREATE DATABASE if exists demo;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'exists demo' at line 1

要是“demo”数据库存在的话,我们就不需要在创建了,

要是“demo”数据库不存在的话,我们就可以创建“demo”数据库。

正确的解决方法就是:使用 not exists关键字

#创建一个demo数据库
CREATE DATABASE if not exists demo;

运行后:

[SQL]CREATE DATABASE if not exists demo;
受影响的行: 1
时间: 0.000s

还有一种可能就是  exists关键字

#删除存在“temp”的数据库
drop table if exists temp;

运行后:

[SQL]drop table if exists temp;
受影响的行: 0
时间: 0.001s

表示:删除成功!

注:

有exists关键字就必定有not exists关键字,因为它们之间是相反的关系   存在(true)或不存在(false)

并且,我们会发现多运行几次这个语句它都不会报错,每次运行结果都是正确的,但它并不会因为你运行了几次就创建几次数据库。

要是存在“demo”这个数据库了,你在继续运行这句语句它都不会进入if里面。

创建表也是和创建数据库一样的,都需要判断是否存在某个表或数据库

这就是为啥要使用exists关键字的好处。

 

还有第二种使用exists和not exists关键字的用法:

exists也可以作为where语句的子查询

#问题是:检查logic Java课程最近一次考试。如果有成绩达到60分以上者,则显示分数排在前5名学员的学号和分数
select `studentNo` 学号,`studentResult` 成绩 from `result`
where exists(#查询logic Java最后一次考试成绩大于60的记录select * from `result` where `subjectNo`=(select `subjectNo` from `subject` where `subjectName`='Logic Java')and `examDate`=(select Max(`examDate`) from `result` where `subjectNo`=(select `subjectNo` from `subject` where `subjectName`='Logic Java'))and `studentResult`>60)and `subjectNo`=(select `subjectNo` from `subject` where `subjectName`='Logic Java')order by `studentResult` desc Limit 5;    #按成绩降序排序,显示前5名 

以上是一个很多的例子,大家可以参考参考!!!

反之,not exists也是差不多,这两个关键字有百分之八十的相似度

not exists关键字在这就不一一展示了……

 

 

 

 

  相关解决方案