【问题标题】:MY SQL Workbench: Errors after executing SQL script fileMY SQL Workbench:执行 SQL 脚本文件后出错
【发布时间】:2021-08-04 02:22:14
【问题描述】:

我对编码完全陌生,在学习了一点 HTML 和 CSS 后开始学习 MY SQL。我已经安装了 MSQL 和 MySQL 工作台,并在熟悉面板后开始使用它。我遇到的问题是从我正在做的文件夹课程中打开 SQL 文件并执行整个代码后,我收到这些错误消息并且无法弄清楚如何修复它。

错误:

01:00:18    DROP DATABASE IF EXISTS `sql_invoicing` 
0 row(s) affected, 1 warning(s): 1008 Can't drop database 'sql_invoicing'; database doesn't exist   0.000 sec

01:00:18    DROP DATABASE IF EXISTS `sql_invoicing` 
0 row(s) affected, 1 warning(s): 1008 Can't drop database 'sql_invoicing'; database doesn't exist   0.000 sec

01:00:18    DROP DATABASE IF EXISTS `sql_invoicing` 
0 row(s) affected, 1 warning(s): 1008 Can't drop database 'sql_invoicing'; database doesn't exist   0.000 sec

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    这些不是错误。这些是警告。警告与 mysql 中的错误不同,因为它们不会停止脚本的执行。

    他们告诉您没有sql_invoicing 数据库,因此不需要运行该命令来删除该数据库。哪个好。

    您可以完全忽略这些警告。它们只是为您提供更多信息,并帮助您确定是否真的需要这些命令。例如,您可以完全取出那些 DROP DATABASE 命令,它不会对您的脚本产生一点影响。

    但是,脚本最好在创建同名数据库之前删除数据库,这样您的脚本在尝试创建数据库但失败时不会发生真正的错误。如果发生这种情况,它将停止整个脚本,您将不得不修复错误并重新开始。 错误如下所示: ERROR 1007 (HY000): Can't create database 'sql_invoicing'; database exists

    就像现在一样,您可以检查您的数据库并查看它是否已创建,并且您的所有其他命令都已成功运行。 drop database 命令没有运行,因为它们根本不需要运行。但如果您决定再次运行脚本,它们将运行,因为现在 sql_invoicing 数据库确实存在,因为它是在您运行脚本时创建的。

    还要注意:如果您在这些删除数据库语句中没有“IF EXISTS”子句,那么它会引发错误。或者,对于 CREATE DATABASE 语句,您可以添加 'IF NOT EXISTS' 子句,这将确保在数据库已经存在的情况下不会引发错误。

    【讨论】:

    • 谢谢一百万。抱歉使用了错误的术语,我对 MySQL 完全陌生。
    • 不用担心,MySQL 是一个非常值得学习的 RDBMS。继续努力吧。你不会后悔的。
    【解决方案2】:

    这是正常行为。而不是抛出错误并停止所有活动。

    您会收到警告,并且所有后续命令都会继续执行。

    IF EXISTS 用于防止在数据库不存在时发生错误。

    source

    【讨论】:

    • 非常感谢您的帮助。
    • @Benjamin 别忘了accept it
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2014-01-09
    相关资源
    最近更新 更多