PostgreSql : 범위를 벗어난 숫자 값 비활성화

토마스 K

PHP와 PostgreSQL로 API를 만들고 있습니다. 이것은 내가 사용하는 쿼리 중 하나입니다.

SELECT id,  email,  first_name,  last_name, [...] FROM clients WHERE id = ?

"id"열은 정수이며 더 큰 유형이 필요하지 않습니다. ? 사용자로부터 오는 값으로 대체됩니다.

그러나 사용자가 너무 큰 정수 (9999999999999)를 보내면 PostgreSQL은 오류를 반환합니다.

SQLSTATE [22003] : 숫자 값이 범위를 벗어남 : 7 오류 : \ "99999999999999999999999 \"값이 정수 유형의 범위를 벗어났습니다.

PHP 로직에서 오버플로를 확인해야합니까?

이 오류를 경고로 바꿀 수 있습니까? MySQL에 대한 동일한 쿼리가 실패하지 않습니다.

감사합니다

크레이그 링거

"MySQL에 대한 동일한 쿼리는 실패하지 않습니다"는 좋은 권장 사항이 아닙니다 (ANSI STRICT 모드에서 MySQL을 실행하지 않는 한). MySQL은 0000-00-00날짜로 받아들이고 잘못된 항목을 장소의 null로 강제 변환하며 종종 데이터가 망가 졌다는 경고를 표시합니다.

즉, PostgreSQL이 오류 코드를 반환하거나 null을 반환하는 형식 변환 함수 버전을 제공했으면 좋겠습니다. 따라서 명시 적으로 작성할 수 있습니다.

INSERT INTO mytable(blah) VALUES (bigint_in_nullifinvalid('99999999999999999'));

하지만 그렇지 않습니다.

PL / PgSQL에서 이러한 함수를 작성할 수 있지만 효율적이지 않고 내장 된 기능이 없습니다.

PostgreSQL이 요청없이 내 데이터를 엉망으로 만들지 않는다는 사실이 정말 기쁘지만, 요청했을 때 데이터를 엉망으로 만들고 싶을 때가 있습니다.

일반적으로 다음을 수행하는 것이 좋습니다.

  • 먼저 응용 프로그램 측에서 확인하십시오.
  • 데이터베이스가 무결성을 강화하도록하십시오.
  • 오류를 트랩하고 사용자에게보고합니다. SQLSTATE반환을 일치 시켜 오류에 대한 세부 정보를 찾을 수 있습니다 .

PostgreSQL에는 "경고와 함께 잘못된 데이터 삽입"옵션이 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

난수는 범위를 벗어난 숫자를 생성합니다 (자바)

분류에서Dev

SQL Server 2012 datetime 비교에서 범위를 벗어난 값

분류에서Dev

minTime 및 maxTime 범위를 벗어난 시간 비활성화

분류에서Dev

내 범위를 벗어난 숫자 생성 C ++ (너무 큽니다)

분류에서Dev

셀 값을 참조 할 때 범위를 벗어난 아래 첨자

분류에서Dev

범위를 벗어난 첨자, VBA

분류에서Dev

범위를 벗어난 문자열-Java

분류에서Dev

범위를 벗어난 자동 필터

분류에서Dev

범위를 벗어난 아래 첨자 범위를 선택하고 값을 추가하는 코드의 오류

분류에서Dev

문자열 형식화의 범위를 벗어난 튜플 인덱스

분류에서Dev

원뿔 작성자의 범위를 벗어난 문제에 대해 조언

분류에서Dev

R for 벡터를 통한 루프 (범위를 벗어난 첨자가 특정 값으로 변경되는 경우)

분류에서Dev

목록 값 범위를 벗어난 최대 값

분류에서Dev

long long int 범위를 벗어난 문자열을 정수 값으로 변환하는 방법

분류에서Dev

문서화 된 범위를 벗어난 Docker 컨테이너의 메모리 교체 값

분류에서Dev

R에서 xts 객체의 값을 부분 집합화할 때 범위를 벗어난 오류

분류에서Dev

XGBoost 회귀-훈련 범위를 벗어난 예측 값

분류에서Dev

Mysql2 :: Error : 범위를 벗어난 값

분류에서Dev

범위를 벗어난 고유 값 가져 오기

분류에서Dev

범위를 벗어난 값을 제공하는 uniform_real_distribution

분류에서Dev

개수가 0 인 Where 범위를 벗어난 MySQL Reurn 값

분류에서Dev

어휘 분석기의 구성, While 루프에서 범위를 벗어난 문자열 인덱스,

분류에서Dev

범위를 벗어난 인덱스 날짜를 문자열 구성 요소로 변환

분류에서Dev

생성자와 관련하여 발생하는 범위를 벗어난 런타임 오류

분류에서Dev

R-jpeg를 읽을 때 범위를 벗어난 첨자

분류에서Dev

PostgreSQL이 텍스트 파일에서 복사 할 때 범위를 벗어난 값을 null로 설정할 수 있습니까?

분류에서Dev

지우기 후 범위를 벗어난 첨자

분류에서Dev

다른 뷰의 범위를 벗어난 자르기 uiimageview

분류에서Dev

서브 루틴의 범위를 벗어난 첨자 오류

Related 관련 기사

  1. 1

    난수는 범위를 벗어난 숫자를 생성합니다 (자바)

  2. 2

    SQL Server 2012 datetime 비교에서 범위를 벗어난 값

  3. 3

    minTime 및 maxTime 범위를 벗어난 시간 비활성화

  4. 4

    내 범위를 벗어난 숫자 생성 C ++ (너무 큽니다)

  5. 5

    셀 값을 참조 할 때 범위를 벗어난 아래 첨자

  6. 6

    범위를 벗어난 첨자, VBA

  7. 7

    범위를 벗어난 문자열-Java

  8. 8

    범위를 벗어난 자동 필터

  9. 9

    범위를 벗어난 아래 첨자 범위를 선택하고 값을 추가하는 코드의 오류

  10. 10

    문자열 형식화의 범위를 벗어난 튜플 인덱스

  11. 11

    원뿔 작성자의 범위를 벗어난 문제에 대해 조언

  12. 12

    R for 벡터를 통한 루프 (범위를 벗어난 첨자가 특정 값으로 변경되는 경우)

  13. 13

    목록 값 범위를 벗어난 최대 값

  14. 14

    long long int 범위를 벗어난 문자열을 정수 값으로 변환하는 방법

  15. 15

    문서화 된 범위를 벗어난 Docker 컨테이너의 메모리 교체 값

  16. 16

    R에서 xts 객체의 값을 부분 집합화할 때 범위를 벗어난 오류

  17. 17

    XGBoost 회귀-훈련 범위를 벗어난 예측 값

  18. 18

    Mysql2 :: Error : 범위를 벗어난 값

  19. 19

    범위를 벗어난 고유 값 가져 오기

  20. 20

    범위를 벗어난 값을 제공하는 uniform_real_distribution

  21. 21

    개수가 0 인 Where 범위를 벗어난 MySQL Reurn 값

  22. 22

    어휘 분석기의 구성, While 루프에서 범위를 벗어난 문자열 인덱스,

  23. 23

    범위를 벗어난 인덱스 날짜를 문자열 구성 요소로 변환

  24. 24

    생성자와 관련하여 발생하는 범위를 벗어난 런타임 오류

  25. 25

    R-jpeg를 읽을 때 범위를 벗어난 첨자

  26. 26

    PostgreSQL이 텍스트 파일에서 복사 할 때 범위를 벗어난 값을 null로 설정할 수 있습니까?

  27. 27

    지우기 후 범위를 벗어난 첨자

  28. 28

    다른 뷰의 범위를 벗어난 자르기 uiimageview

  29. 29

    서브 루틴의 범위를 벗어난 첨자 오류

뜨겁다태그

보관