CONCAT으로 컬럼 생성시 Data too long 오류 0 4 3,538

by 썸바리헬미 [MySQL] MySQL 오류 CONCAT [2023.03.15 15:57:36]


안녕하세요..

MySQL로 계층형 게시판 리스트 조회하는 쿼리를 짜고있는데요...

테스트시 Data too long 오류가 나서 질문드립니다.

 

컬럼은 NTT_ID, PARENT_NTT_ID 이렇게 있고

최상위 게시물은 PARENT_NTT_ID 가 NULL이며

답글 게시물은 PARENT_NTT_ID에 부모의 NTT_ID 값이 INSERT 됩니다.

 

WITH RECURSIVE CTE AS (

SELECT NTT_ID

         , NTT_ID AS BD

         , PARENT_NTT_ID

  FROM NTT

WHERE UPPER_NTT_ID

UNION ALL

SELECT NTT_ID

       , CONCAT(CTE.BN, ",", A.NTT_ID) AS BN

       , PARENT_NTT_ID

  FROM NTT

)

SELECT NTT_ID

        , BN

        , PARENT_NTT_ID

  FROM CTE;

 

이런식...

 

근데 테스트 도중(연속해서 답글 게시물 생성) Data too long 오류가 발생합니다 ㅠㅠ 

 

CONVERT(CONCAT(CTE.BN, ",", A.NTT_ID), CHAR(9999999)) 이런식으로 변환을 해봐도 오류가 뜨는데 

 

어떻게 하면 좋을지... 조언을 구합니다 ㅠ 

 

by 신이만든지기 [2023.03.15 16:57:27]

CONCAT(CTE.BN, ",", A.NTT_ID)  의 길이가, insert 대상의 컬럼 크기보가 커서 발생하는 문제입니다.

컬럼크기를 늘려주세요.


by 썸바리헬미 [2023.03.15 17:07:19]

테이블에 있는 컬럼이 아니라 쿼리에서 생성한 컬럼인데 컬럼크기를 어떻게 늘려주면 될까요? ㅠㅠ 


by 마농 [2023.03.15 17:10:31]
SELECT ntt_id
--     , ntt_id AS bd
     , CAST(ntt_id AS VARCHAR(9999)) bd

 


by 썸바리헬미 [2023.03.15 17:29:26]

감사합니다 ㅠㅠ 왜 위에서 해볼 생각은 안하고 아래에다가만 작업했는지 ㅠㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입