[SQL] 열 너무 긴 1406 데이터 - MySQL의 오류 코드
SQL열 너무 긴 1406 데이터 - MySQL의 오류 코드
너무 오래 열에 대한 1406 데이터 : 오류 코드
CREATE TABLE `TEST`
(
`idTEST` INT NOT NULL ,
`TESTcol` VARCHAR(45) NULL ,
PRIMARY KEY (`idTEST`)
);
이제 몇 가지 값을 삽입
INSERT INTO TEST
VALUES
(
1,
'Vikas'
)
select
SELECT * FROM TEST;
더 길이보다 기록을 삽입
INSERT INTO TEST
VALUES
(
2,
'Vikas Kumar Gupta Kratika Shukla Kritika Shukla'
)
우리는 길이를 선택하는 경우
SELECT LENGTH('Vikas Kumar Gupta Kratika Shukla Kritika Shukla')
'47'
그리고 그것은 오류 메시지를 보여주고있다
너무 오래 열에 대한 1406 데이터 : 오류 코드
하지만 표 적어도 처음 45 개 문자를 삽입하려면, 내 기대는 무엇인가
질문이 명확하지 않은 경우 알려 주시기 바랍니다.
이 오류의 원인을 알고있다. 나는 데이터 형식의 길이보다 더 많은 값을 삽입하려합니다.
나는 그것은 MS SQL에서 가능한로 MySQL의 솔루션을 원한다. 나는 희망 그래서 그것은 또한 MySQL의에있을 것입니다.
해결법
-
==============================
1.MySQL은 지정된 열 너비를 초과하는 삽입 값을 자릅니다.
MySQL은 지정된 열 너비를 초과하는 삽입 값을 자릅니다.
오류 시도하지 않고이 작업을하기 위해 엄격한 사용하지에 SQL 모드를 전환 할 수 있습니다.
MySQL의 참조 설명서
모드를 변경하려면
이 두 가지 방법으로 수행 할 수 있습니다 :
찾기:
암호:
# Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
교체 :
암호:
# Set the SQL mode to strict sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
또는
암호:
SET @@global.sql_mode= '';
-
==============================
2.나는 앱이 사용자가 입력 한 데이터의 손실을 시작할 수 있기 때문에 엄격 모드를 전환하는 좋은 옵션이 아니라고 생각.
나는 앱이 사용자가 입력 한 데이터의 손실을 시작할 수 있기 때문에 엄격 모드를 전환하는 좋은 옵션이 아니라고 생각.
앱에서 TESTcol 값을받을 경우에 당신은 레일처럼, 모델 검증을 추가 할 수 있습니다
validates :TESTcol, length: { maximum: 45 }
당신이 SQL 스크립트의 값을 조작 할 경우에 당신은 SUBSTRING 명령 문자열을자를 수있다
INSERT INTO TEST VALUES ( 1, SUBSTRING('Vikas Kumar Gupta Kratika Shukla Kritika Shukla', 0, 45) );
-
==============================
3.이것은 내가 우분투를 사용하는 단계이다. 그것은 당신이 당신의 입력에서 45 개 이상의 문자를 삽입 할 수 있지만, MySQL은 데이터베이스에 삽입 할 45 자에 텍스트를 잘라 것입니다.
이것은 내가 우분투를 사용하는 단계이다. 그것은 당신이 당신의 입력에서 45 개 이상의 문자를 삽입 할 수 있지만, MySQL은 데이터베이스에 삽입 할 45 자에 텍스트를 잘라 것입니다.
-
==============================
4.당신의 SQL 데이터베이스의 한계를 확인하십시오. 어쩌면 you'r이 행 필드 제한을 초과.
당신의 SQL 데이터베이스의 한계를 확인하십시오. 어쩌면 you'r이 행 필드 제한을 초과.
-
==============================
5.당신이 특정 열 예에 대한 단어의 수를 잘릴 수도 있기 때문에, 당신의 모델과 수표로 이동합니다. MAX_LENGTH = "150".
당신이 특정 열 예에 대한 단어의 수를 잘릴 수도 있기 때문에, 당신의 모델과 수표로 이동합니다. MAX_LENGTH = "150".
from https://stackoverflow.com/questions/15949038/error-code-1406-data-too-long-for-column-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 식별 컬 테이블을 만드는 방법 (0) | 2020.04.20 |
---|---|
[SQL] 의 판매와 달을 포함하여 지난 12 개월의 MySQL의 월간 판매 (0) | 2020.04.20 |
[SQL] sqlite3를에 대한 기본 재귀 쿼리? (0) | 2020.04.20 |
[SQL] SQL 서버에서 가장 가까운 날짜 찾기 (0) | 2020.04.19 |
[SQL] SQL - COALESCE와 ISNULL의 차이? [복제] (0) | 2020.04.19 |