Maison base de données tutoriel mysql MySQL 处理非法数据

MySQL 处理非法数据

Jun 07, 2016 pm 05:41 PM
mysql错误

默认情况下,MySQL按照以下规则处理数据越界和其他非正常数据1、对于数值数据或time数据列,超出合法范围的值将被阶段到最近的取值范围边界;2、对于字符串数据

默认情况下,香港虚拟主机,MySQL按照以下规则处理“数据越界”和其他非正常数据

1、对于数值数据或time数据列,香港空间,超出合法范围的值将被阶段到最近的取值范围边界;
2、对于字符串数据列(不包括enum、set)太长的字符串将被截断到数据列的最大长度,对于
   ENUM类型数据,MySQL将不合法成员用空字符串代替。如果赋值给某个set数据列包含非法子字符串,那mysql会删除那些子字符串并把剩下的赋值给该数据列
3、对于日期和时间数据列,非法数值会被转换成‘0’值替代
当发生上述情况的时候,MySQL会生成警告, 可使用 show warnings 查看。
4、对于字符串序列,香港服务器,太长的字符串将被截短到数据列的最大长度

如果需要在插入或更新数据时进行更严格的检查,可以启用特殊的SQL MODE;
sql_mode='strict_all_tables,strict_trans_tables'

对于支持事务的表,这两种模式是一样的:如果发现某个值缺失或非法,MySQL将抛出错误,语句会停止运行并回滚。
对于不支持事务的表,这两种模式的效果:
1、如果在插入或修第一个数据行时就发现某个值非法或缺失,那该语句直接抛错,语句停止执行。这个和支持事务的数据表行为时一样的。
2、如果在插入或修改第n个(n>1)数据行时才发现错误,那就会出现下面的情况:
   2.1 在strict_all_tables模式下,停止语句执行,存在部分更新的问题
   2.2 在strict_trans_tables模式下,MySQL将继续执行该语句避免“部分更新问题”,对每个非法值将其转换为最接近的合法值。

配合严格模式的其他几个SQL模式:

ERROR_FOR_DIVISION_BY_ZERO: 在严格模式下,遇到以0为除数的情况,拒绝插入数据库,(如果不在严格模式下,MYSQL将生成一条告警,并插入NULL值)

NO_ZERO_DATE:在严格模式下,拒绝0日期值进入数据库。

建议采用:strict_trans_tables ERROR_FOR_DIVISION_BY_ZERO

制止错误的另一个办法是在insert或update语句里使用IGNORE关键字,使非法值而导致的错误弱化为一个警告。

本文出自 “技术成就梦想” 博客,请务必保留此出处

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment gérer l'erreur de connexion MySQL 1049 ? Comment gérer l'erreur de connexion MySQL 1049 ? Jun 29, 2023 am 09:50 AM

Comment gérer l'erreur de connexion MySQL 1049 ?

Colonne inconnue 'nom_colonne' dans 'liste de champs' - Comment résoudre l'erreur MySQL : colonne inconnue dans la liste de champs Colonne inconnue 'nom_colonne' dans 'liste de champs' - Comment résoudre l'erreur MySQL : colonne inconnue dans la liste de champs Oct 05, 2023 am 10:44 AM

Colonne inconnue 'nom_colonne' dans 'liste de champs' - Comment résoudre l'erreur MySQL : colonne inconnue dans la liste de champs

Comment résoudre l'échec d'initialisation de la base de données MySQL Comment résoudre l'échec d'initialisation de la base de données MySQL Apr 14, 2024 pm 07:12 PM

Comment résoudre l'échec d'initialisation de la base de données MySQL

Que faire si l'erreur de connexion MySQL 1017 se produit ? Que faire si l'erreur de connexion MySQL 1017 se produit ? Jun 30, 2023 am 11:57 AM

Que faire si l'erreur de connexion MySQL 1017 se produit ?

Mar 22, 2024 pm 12:31 PM

Comment vérifier la progression de la récupération de la base de données MySQL Comment vérifier la progression de la récupération de la base de données MySQL Feb 24, 2024 pm 12:24 PM

Comment vérifier la progression de la récupération de la base de données MySQL

Comment résoudre l'erreur MySQL 1171 Comment résoudre l'erreur MySQL 1171 Jan 09, 2024 pm 03:59 PM

Comment résoudre l'erreur MySQL 1171

Collection de solutions aux erreurs MySQL courantes Collection de solutions aux erreurs MySQL courantes Jun 15, 2023 pm 02:58 PM

Collection de solutions aux erreurs MySQL courantes

See all articles