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

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1252
24
Unknown column 'column_name' in 'field list' - 如何解決MySQL報錯:欄位清單中的未知列 Unknown column 'column_name' in 'field list' - 如何解決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連線錯誤1049? 如何處理MySQL連線錯誤1049? Jun 29, 2023 am 09:50 AM

如何處理MySQL連線錯誤1049? MySQL是一種常用的關聯式資料庫管理系統,許多開發人員和系統管理員都會使用MySQL來儲存和管理資料。然而,在使用MySQL時,有時會遇到連線錯誤1049的問題。本文將介紹連接錯誤1049的原因,並給出解決這個問題的幾種方法。 MySQL連線錯誤1049通常是由於資料庫不存在或資料庫名稱錯誤所導致的。當連接到MySQL服務

PHP會傳回上一個 MySQL 操作中的錯誤訊息的數位編碼 PHP會傳回上一個 MySQL 操作中的錯誤訊息的數位編碼 Mar 22, 2024 pm 12:31 PM

這篇文章將為大家詳細講解有關PHP返回上一個Mysql操作中的錯誤訊息的數字編碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。利用PHP回傳MySQL錯誤訊息數字編碼引言在處理mysql查詢時,可能會遇到錯誤。為了有效處理這些錯誤,了解錯誤訊息數字編碼至關重要。本文將指導您使用php取得Mysql錯誤訊息數字編碼。取得錯誤訊息數字編碼的方法1.mysqli_errno()mysqli_errno()函數傳回目前MySQL連線的最近錯誤號碼。文法如下:$erro

MySQL連線錯誤1017怎麼辦? MySQL連線錯誤1017怎麼辦? Jun 30, 2023 am 11:57 AM

如何處理MySQL連線錯誤1017? MySQL是一種開源的關聯式資料庫管理系統,被廣泛應用於網站開發和資料儲存。然而,在使用MySQL時,可能會遇到各種各樣的錯誤。其中一個常見的錯誤是連線錯誤1017(MySQLerrorcode1017)。連線錯誤1017表示資料庫連線失敗,通常是因為使用者名稱或密碼錯誤而造成的。當MySQL無法使用提供的使用者名稱和密碼驗

如何查看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