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

时间:2010-11-26 23:30:11

标签: mysql warnings

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

2 个答案:

答案 0 :(得分:5)

我不知道这是否会提升所有错误警告,如果您已经意识到这一点,请道歉,但有几个MySQL server modes可能对您有用:

  

传统

     

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

STRICT_ALL_TABLESTRADITIONAL的一部分:

  

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

答案 1 :(得分:2)

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

当您删除重要数据时,您当然希望引发错误,但是当COUNT(colname)表达式在列中找到一些带有空值的行并忽略它们以进行计数时,您可能不希望出现错误(标准警告)。

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

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