2010-11-26 43 views

回答

2

在某些模式下,MySQL会提出警告而不是SQL标准所要求的错误。

你肯定想在删除重要数据时引发错误,但是当COUNT(colname)表达式找到列中有空值的行并忽略它们用于计数目的时,您可能不希望产生错误(a标准警告)。

随着MySQL变得更加符合标准,可能会添加不具有数据完整性影响的警告。

如果在更接近SQL标准的模式下使用MySQL是不够的,您可以在应用程序代码中捕获不可接受的警告并添加适当的补偿操作。

5

我不能说这是否会促进所有警告错误,所以道歉,如果你已经意识到这一点,但有几个MySQL server modes,可能为你工作:

传统

使MySQL像“传统”SQL数据库系统一样运行。在将不正确的值插入列时,此模式的简单描述是“给出错误而不是警告”。

STRICT_ALL_TABLESTRADITIONAL部分:

严格控制模式的MySQL如何处理是无效或丢失的输入值。由于多种原因,值可能无效。例如,该列可能具有错误的数据类型,或者该列可能超出范围,或者可能超出范围

+3

这不起作用。即使设置了“STRICT_ALL_TABLES”,许多警告仍然是警告。 – Pacerier 2015-01-09 04:06:21