mysql中的注解级别警告是什么?

4zcjmb1e  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(330)

好的,我理解mysql上下文中的错误和警告是什么。但是有什么必要注意级别的警告呢?我已经搜索了mysql文档,但是没有找到任何相关的内容。如果有人能弄清楚它们是什么以及为什么有用,那就更好了。

mysql> create database if not exists city;
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> show warnings
    -> ;
+-------+------+------------------------------------------------+
| Level | Code | Message                                        |
+-------+------+------------------------------------------------+
| Note  | 1007 | Can't create database 'city'; database exists |
+-------+------+------------------------------------------------+
1 row in set (0.00 sec)
dpiehjr4

dpiehjr41#

我一直认为便笺就像一个“参考”:发生了什么事,或者没有发生什么事,可能会引起人们的兴趣。我能在文档中找到的最接近的定义是:
... 不影响重新加载操作完整性的事件
那是从 sql_notes 服务器变量,在 mysqldump .
浏览mysql源代码 Sql_Condition::SL_NOTE 注解此级别的警告。有一些,但它们主要是你所期望的无影响的信息:
事件已存在
表已存在 Query '%s' rewritten to '%s' by a query rewrite plugin 密码设置
遗憾的是,我本以为代码docblock会提供更多关于它们的信息,但事实并非如此:

class Sql_condition {
 public:
  /**
    Enumeration value describing the severity of the condition.
  */
  enum enum_severity_level { SL_NOTE, SL_WARNING, SL_ERROR, SEVERITY_END };

这可能需要向mysql团队提交一份文档错误报告。
有趣的是,mariadb说:
注解与警告的不同之处在于,它仅在sql\u notes变量设置为1(默认值)时出现,并且在启用严格模式时不会转换为错误。
在maria和mysql扩展版中,我的结论是:notes是警告,但是可以忽略,因为没有描述数据丢失或副作用。

相关问题