如何制作所有mysql警告的致命错误?

Eug*_*ash 9 mysql warnings

有没有办法将所有mysql警告提升为致命错误?我想避免任何数据截断(包括小数部分).

Pek*_*ica 5

我不知道这是否会促进所有错误警告,如果您已经意识到这一点,请道歉,但有几种MySQL服务器模式可能对您有用:

传统

使MySQL的行为类似于"传统的"SQL数据库系统.在向列中插入不正确的值时,此模式的简单描述是"给出错误而不是警告".

STRICT_ALL_TABLES是的一部分TRADITIONAL:

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

  • 这不起作用.即使在设置了"STRICT_ALL_TABLES"之后,许多警告仍然是警告. (4认同)

fre*_*edt 2

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

您当然希望在删除重要数据时引发错误,但您可能不希望在 COUNT(colname) 表达式发现列中包含空值的某些行并出于计数目的而忽略它们时引发错误(标准警告)。

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

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