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关键字,使非法值而导致的错误弱化为一个警告。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL 接続エラー 1049 に対処するにはどうすればよいですか? MySQL 接続エラー 1049 に対処するにはどうすればよいですか? Jun 29, 2023 am 09:50 AM

MySQL 接続エラー 1049 に対処するにはどうすればよいですか? MySQL は一般的に使用されるリレーショナル データベース管理システムであり、多くの開発者やシステム管理者がデータの保存と管理に MySQL を使用しています。ただし、MySQL を使用している場合、接続エラー 1049 の問題が発生することがあります。この記事では、接続エラー 1049 の原因と、この問題を解決するためのいくつかの方法を紹介します。 MySQL 接続エラー 1049 は通常、データベースが存在しないか、データベース名が間違っていることが原因で発生します。 MySQLサービスに接続する場合

「フィールド リスト」の不明な列「column_name」 - MySQL エラーを解決する方法: フィールド リストに不明な列があります 「フィールド リスト」の不明な列「column_name」 - MySQL エラーを解決する方法: フィールド リストに不明な列があります Oct 05, 2023 am 10:44 AM

タイトル: Unknowncolumn'column_name'in'fieldlist'-MySQL エラーの解決方法: フィールド リストの列が不明です。特定のコード例が必要です。クエリまたは操作に MySQL データベースを使用する場合、次のようなエラー メッセージが表示されることがあります:「Unknowncolumn'」 column_name'in'fieldlist'"、つまり、フィールド リストに不明な列エラーが存在します。これは通常、

mysqlデータベースの初期化エラーを解決する方法 mysqlデータベースの初期化エラーを解決する方法 Apr 14, 2024 pm 07:12 PM

MySQL データベースの初期化失敗の問題を解決するには、次の手順に従います。 権限をチェックし、適切な権限を持つユーザーを使用していることを確認します。データベースがすでに存在する場合は、それを削除するか、別の名前を選択します。テーブルが既に存在する場合は、テーブルを削除するか、別の名前を選択します。 SQL ステートメントに構文エラーがないか確認してください。 MySQL サーバーが実行中であり、接続可能であることを確認します。正しいポート番号を使用していることを確認してください。他のエラーの詳細については、MySQL ログ ファイルまたはエラー コード ファインダーを確認してください。

MySQL 接続エラー 1017 が発生した場合はどうすればよいですか? MySQL 接続エラー 1017 が発生した場合はどうすればよいですか? Jun 30, 2023 am 11:57 AM

MySQL 接続エラー 1017 に対処するにはどうすればよいですか? MySQL は、Web サイトの開発やデータ ストレージで広く使用されているオープン ソースのリレーショナル データベース管理システムです。ただし、MySQL を使用すると、さまざまなエラーが発生する可能性があります。一般的なエラーの 1 つは、接続エラー 1017 (MySQL エラー コード 1017) です。接続エラー 1017 は、データベース接続の失敗を示します。通常、ユーザー名またはパスワードが間違っていることが原因で発生します。 MySQL が指定されたユーザー名とパスワードを使用した認証に失敗した場合

PHP は、前の MySQL 操作でのエラー メッセージの数値エンコーディングを返します。 PHP は、前の MySQL 操作でのエラー メッセージの数値エンコーディングを返します。 Mar 22, 2024 pm 12:31 PM

この記事では、前回の Mysql 操作で PHP から返されたエラー メッセージの数値エンコードについて詳しく説明します。編集者が非常に実用的であると考えたので、参考として共有します。この記事を読んで何かを得ることができれば幸いです. . PHP を使用して MySQL エラー情報を返す 数値エンコーディング はじめに mysql クエリを処理するときにエラーが発生する場合があります。これらのエラーを効果的に処理するには、エラー メッセージの数値エンコーディングを理解することが重要です。この記事では、php を使用して Mysql エラー メッセージの数値エンコーディングを取得する方法を説明します。エラー情報の数値エンコードを取得する方法 1. mysqli_errno() mysqli_errno() 関数は、現在の MySQL 接続の最新のエラー番号を返します。構文は次のとおりです: $erro

MySQLデータベースのリカバリの進行状況を確認する方法 MySQLデータベースのリカバリの進行状況を確認する方法 Feb 24, 2024 pm 12:24 PM

MySQL は、非常に一般的に使用されているオープンソースのリレーショナル データベース管理システムであり、安定性、効率性、柔軟性などの特徴を備えており、さまざまな種類のアプリケーションで広く使用されています。 MySQLを利用していると必ずデータベースの復旧作業が発生しますが、MySQLデータベースの復旧状況をいかに正確に確認するかがより重要な課題となっています。 MySQL データベースのリカバリの進行状況は、MySQL エラー ログを表示することで取得できます。 MySQL エラー ログには、すべてのデータベース操作記録が記録されます。

一般的な MySQL エラーに対する解決策のコレクション 一般的な MySQL エラーに対する解決策のコレクション Jun 15, 2023 pm 02:58 PM

開発中に MySQL を頻繁に扱う場合、いくつかの一般的なエラーが発生することがあります。エラーによっては MySQL が適切に動作しなくなる場合もあれば、プログラムのパフォーマンスに影響を及ぼす場合もあります。ここでは、いくつかの一般的な MySQL エラーとその解決策を示します。 MySQL サーバーに接続できません。MySQL サーバーに接続すると、次のエラーが発生する場合があります: Can'tconnecttoMySQLserveron'localhost'(10061)Ac

MySQL エラー 1171 を解決する方法 MySQL エラー 1171 を解決する方法 Jan 09, 2024 pm 03:59 PM

解決策: 1. データ型をチェックして、インデックスを作成または変更する列のデータ型に互換性があることを確認します。2. インデックスを作成する列で関数や式を使用しないようにします。3. 明示的な型変換を使用します。インデックス付きカラムでは関数または式を使用する必要があり、明示的な型変換を使用するようにしてください。 4. MySQL のバージョンとドキュメントを確認して、インデックスとデータ型の詳細を確認してください。 5. クエリを最適化します。インデックスの有効活用 6. 他のツールや手法の利用検討等

See all articles