MySQL varchart 설정이 너무 깁니다.
MySQL 인스턴스가 두 개 있습니다.첫 번째 것은 데이터가 너무 길 때 삽입할 때 문자열을 잘라냅니다.두 번째 오류가 발생합니다.
ERROR 1406 (22001): Data too long for column 'xxx' at row 1
나는 두 번째 것도 데이터를 잘라주길 원합니다.이 동작을 관리하기 위한 MySQL 설정이 있습니까?
사용하지 않도록 설정할 수 있습니다.STRICT_TRANS_TABLES
그리고.STRICT_ALL_TABLES
이렇게 하면 삽입된 문자열을 자동으로 잘라낼 수 있습니다.
MySQL Documentation에서 인용합니다.
엄격 모드는 INSERT 또는 UPDATE와 같은 데이터 변경 문에서 MySQL이 올바르지 않거나 누락된 값을 처리하는 방법을 제어합니다.값은 여러 가지 이유로 인해 유효하지 않을 수 있습니다.예를 들어 열에 대한 데이터 유형이 잘못되었거나 범위를 벗어났을 수 있습니다.삽입할 새 행에 정의에 명시적인 DEFAULT 절이 없는 NULL이 아닌 열에 대한 값이 포함되어 있지 않으면 값이 누락됩니다. NULL 열의 경우 값이 누락된 경우 NULL이 삽입됩니다.
엄격한 SQL 모드를 사용할 수 없는 경우 열의 최대 길이를 초과하는 값을 CHAR 또는 VARCHAR 열에 할당하면 해당 값이 적합하도록 잘리고 경고가 생성됩니다.공백이 아닌 문자를 잘라내는 경우 경고가 아닌 오류가 발생하고 엄격한 SQL 모드를 사용하여 값 삽입을 억제할 수 있습니다.섹션 6.1.7, "서버 SQL 모드"를 참조하십시오.
변경 방법: http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
엄격 모드를 비활성화하는 두 가지 방법을 찾았습니다.
아래를 my.cnf에 추가합니다.
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_Substitution"
방법은 mysql 콘솔을 사용하고 있습니다.
SET @@@global.sql_mode= '';
프로덕션 환경에서 실행하기 전에 테스트하십시오.
만약 당신이 cpanel을 사용한다면,
교체하다
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
/usr/my.cnf로
로.
sql-mode=""
달려.
/etc/init.d/mysql restart
언급URL : https://stackoverflow.com/questions/18459184/mysql-too-long-varchar-truncation-error-setting
'source' 카테고리의 다른 글
다크 그레이가 그레이보다 가벼운 이유는 무엇입니까? (0) | 2023.08.30 |
---|---|
Git이 없는 파일에 Git SHA1을 할당하는 방법은 무엇입니까? (0) | 2023.08.26 |
CMD 내부에서 PowerShell.exe를 종료하는 방법 (0) | 2023.08.26 |
PowerShell의 한 디렉터리에서 다른 디렉터리로 파일 집합을 재귀적으로 복사 (0) | 2023.08.26 |
'Invoke-Sqlcmd'이(가) cmdlet의 이름으로 인식되지 않습니다. (0) | 2023.08.26 |