programing

MySQL/MariaDB가 저장 시 자동으로 값을 변경할 수 있는 방법

lastmoon 2023. 8. 15. 11:24
반응형

MySQL/MariaDB가 저장 시 자동으로 값을 변경할 수 있는 방법

MySQL/MariaDB에서 저장 시 전송되는 값과 나중에 검색할 수 있는 값이 다른 경우를 검색하고 있습니다.VARCHAR 및 *TEXT와 같은 이진 문자열이 아닌 데이터 유형이 있는 필드에만 관심이 있습니다.

저장된 가치를 얼마나 신뢰할 수 있는지 좀 더 포괄적으로 알고 싶습니다.이는 유효성 검사 시 특히 위험하므로 출력에 특정 문자(아래 이스케이프 문자 예제와 같이)가 없는 경우에 특히 유용합니다.

이는 다음과 같이 요약됩니다. 출력되지 않는 입력 문자열을 생성할 수 있습니까(또는 환경을 정의할 수 있습니까).<value>두 번째 진술서에서?

INSERT INTO t SET v = <value>, id = 1; // success
SELECT v FROM t WHERE id = 1;

제가 생각할 수 있는 것들:

  • 이스케이프를 포함하는 문자열(\aa)
  • 너무 길면 잘림
  • 입력을 지원하지 않는 테이블의 문자 인코딩

자동으로 오류가 발생하는 경우 SQL 모드가 설정된 정도에 따라 달라질 수 있습니다(예: 마지막 두 예).

당신의 의견에 미리 감사드립니다!

문자열과 정수를 사용하면 선택한 문자 집합에 해당 숫자 또는 문자의 이진 표현이 저장되므로 모든 데이터베이스가 표준 목적을 수행할 수 있습니다.

Decimal Double 값과 Single 값은 서로 다릅니다. 이는 직접 저장할 수 없기 때문에 프랙탈이 소수 표현을 볼 수 있기 때문입니다.

그것 또한 기준을 따르지만, 당신은 그것을 고려해야 합니다.

언급URL : https://stackoverflow.com/questions/62453875/ways-mysql-mariadb-could-silently-be-changing-values-when-storing

반응형