데이터 베이스 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 기반 앱

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 Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

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은 웹 사이트 개발 및 데이터 저장에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 그러나 MySQL을 사용하다 보면 다양한 오류가 발생할 수 있습니다. 일반적인 오류 중 하나는 연결 오류 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. 인덱스를 생성하는 열에 함수나 표현식을 사용하지 마십시오. 인덱스된 열에 함수나 표현식을 사용해야 하며 명시적인 유형 변환을 사용해야 합니다. 4. 인덱스 및 데이터 유형에 대해 자세히 알아보려면 MySQL 버전과 설명서를 확인하세요. 5. 쿼리를 최적화하고 쿼리를 재평가하고 최적화하는 것을 고려하세요. 6. 다른 도구나 방법 등의 사용을 고려합니다.

See all articles