인프런 커뮤니티 질문&답변

류재안님의 프로필 이미지
류재안

작성한 질문수

도대체 왜? 도대체 어떻게! DB 설계와 데이터 다루기

대사와 액션, 회차 정보 테이블

[공유][대사와 액션, 회차정보테이블]contents2 생성관련

작성

·

269

1

안녕하세요.

mysql 버전이 8.0 대라서 그런지 contents2 테이블 생성하는 명령어(create or replace TABLE ... ) 가 실행이 안되서 다른 방식으로 수행하였습니다.

혹시 저와 동일한 에러가 나시는 분은 참고하세요.

 

우선 테이블을 만들고,

group_concat() 이 selec까지는 잘 되는데

생성시에는 에러가 나서,

/* SQL 오류 (1260): Row 6 was cut by GROUP_CONCAT() */

 

구글링을 해보니 max length를 수정해줘야 한다고 하네요.

SET group_concat_max_len=150000;

 

강사님이랑 같은 소스데이터를 사용하는데 왜 에러가 나는 지는 모르겠으나,

관련 명령어를 수행하고 나니 돌아갑니다.

 

답변 2

1

안녕하세요, 인프런 AI 인턴입니다. 류재안님.

MySQL 8.0 버전에서 CREATE OR REPLACE TABLE 명령어가 작동하지 않는 상황을 공유해주셔서 감사합니다. 이러한 경우 CREATE TABLE IF NOT EXISTS 구문을 사용하여 이미 테이블이 존재하지 않을 때만 새로운 테이블을 생성하는 방식으로 대체할 수 있습니다.

에러 메시지 “(1260): Row 6 was cut by GROUP_CONCAT()“는 GROUP_CONCAT() 함수의 기본 문자열 길이 제한으로 인해 발생하는 문제로 보입니다. MySQL에서 GROUP_CONCAT() 함수의 결과가 잘리는 문제는 group_concat_max_len 시스템 변수의 값을 증가시켜 해결할 수 있습니다. 이 변수는 GROUP_CONCAT() 함수가 생성할 수 있는 최대 문자열 길이를 설정합니다. 기본값이 비교적 작기 때문에, 큰 데이터를 다룰 때는 이 값을 적절히 조정해야 할 수 있습니다.

사용자의 설명에 따르면 SET group_concat_max_len=150000; 명령을 실행한 후 문제가 해결되었다고 하셨으므로, 동일한 문제에 직면한 다른 사용자들에게도 유익한 해결책이 될 수 있겠습니다.

강의 내용과 다른 데이터를 사용하는 듯한 상황에서 발생하는 문제점을 잘 해결하신 것 같습니다. 만약 추가적인 질문이나 도움이 필요하시다면, 정보를 제공해주신 인프런의 강의자료 확인 방법이나 문의하기 기능을 이용하시는 것도 좋은 방법입니다.

다시 한번 문제 해결 과정을 공유해주셔서 감사합니다. 다른 수강생들에게도 많은 도움이 될 것 같습니다. 좋은 학습 되시기를 바랍니다!

0

안녕하세요 류재안 님

우선 제가 강좌를 만든 DB가 MariaDB 10.x이상이라 MySQL8.x에서 곧바로 적용하면 가끔 말씀하신 류와 같은 오류들이 발생합니다.

MySQL8.x에서 GROUP_CONCAT 함수에 사용된 문자열 컬럼값의 크기가 1024를 넘어가면 오류를 발생합니다.

언급하신 바와 같이 크기 조정 후 작업이 정상처리됩니다.

변경 전에 확인을 하면 1024로 잡혀 있음을 알 수 있습니다.

show variables like '%group_concat_max_len%';

해결방안 올려주신 점 감사드립니다.

(그런데 인프런 AI인턴 사우가 제 답변보다 더 섬세하고 정확해 보입니다. 😀 참고하시면 보다 도움 되실 듯합니다.)

류재안님의 프로필 이미지
류재안

작성한 질문수

질문하기