MY SQL Workbench: 执行SQL脚本文件后出错
MY SQL Workbench: Errors after executing SQL script file
我对编码完全陌生,在学习了一些 HTML 和 CSS 之后开始学习我的 SQL。我安装了MSQL和MySQLworkbench,熟悉面板后开始使用。我遇到的问题是在打开我正在执行的文件夹课程中的 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
这是正常行为。而不是抛出错误并停止所有活动。
您收到警告,所有后续命令继续执行。
IF EXISTS is used to prevent an error from occurring if the database does not exist.
这些都不是错误。那些是警告。警告与 mysql 中的错误不同,因为它们不会停止脚本的执行。
他们告诉您没有 sql_invoicing
数据库,因此命令不需要 运行 删除该数据库。哪个好
您完全可以忽略这些警告。它们只是为您提供更多信息,并帮助您决定是否真的需要这些命令。例如,您可以完全删除那些 DROP DATABASE 命令,它不会对您的脚本产生一点影响。
但是,脚本在创建同名数据库之前删除数据库是一种很好的做法,这样您的脚本就不会在尝试创建数据库但失败时发生真正的错误。如果发生这种情况,它将停止整个脚本,您将不得不修复错误并重新开始。
错误看起来像这样:
ERROR 1007 (HY000): Can't create database 'sql_invoicing'; database exists
就像现在一样,您可以检查您的数据库并查看它是否已成功创建以及所有其他命令 运行。删除数据库命令没有 运行 因为它们根本不需要 运行。但如果您决定再次 运行 脚本,它们将 运行 因为现在 sql_invoicing
数据库确实存在,因为它是在您 运行 脚本时创建的。
另请注意:如果您在这些删除数据库语句中没有 'IF EXISTS' 子句,则会引发错误。或者,对于 CREATE DATABASE 语句,您可以添加 'IF NOT EXISTS' 子句,这将确保在数据库已经存在的情况下不会抛出错误。
我对编码完全陌生,在学习了一些 HTML 和 CSS 之后开始学习我的 SQL。我安装了MSQL和MySQLworkbench,熟悉面板后开始使用。我遇到的问题是在打开我正在执行的文件夹课程中的 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
这是正常行为。而不是抛出错误并停止所有活动。
您收到警告,所有后续命令继续执行。
IF EXISTS is used to prevent an error from occurring if the database does not exist.
这些都不是错误。那些是警告。警告与 mysql 中的错误不同,因为它们不会停止脚本的执行。
他们告诉您没有 sql_invoicing
数据库,因此命令不需要 运行 删除该数据库。哪个好
您完全可以忽略这些警告。它们只是为您提供更多信息,并帮助您决定是否真的需要这些命令。例如,您可以完全删除那些 DROP DATABASE 命令,它不会对您的脚本产生一点影响。
但是,脚本在创建同名数据库之前删除数据库是一种很好的做法,这样您的脚本就不会在尝试创建数据库但失败时发生真正的错误。如果发生这种情况,它将停止整个脚本,您将不得不修复错误并重新开始。
错误看起来像这样:
ERROR 1007 (HY000): Can't create database 'sql_invoicing'; database exists
就像现在一样,您可以检查您的数据库并查看它是否已成功创建以及所有其他命令 运行。删除数据库命令没有 运行 因为它们根本不需要 运行。但如果您决定再次 运行 脚本,它们将 运行 因为现在 sql_invoicing
数据库确实存在,因为它是在您 运行 脚本时创建的。
另请注意:如果您在这些删除数据库语句中没有 'IF EXISTS' 子句,则会引发错误。或者,对于 CREATE DATABASE 语句,您可以添加 'IF NOT EXISTS' 子句,这将确保在数据库已经存在的情况下不会抛出错误。