[SQL/Error] 필드타입 변경 : TEXT길이 연장하기

2024. 3. 10. 00:40· SQL
목차
  1. 1-1 수동으로 SQL 실행하기
  2. 1-2 TEXT로 변경하기
  3. TEXT:

필드 타입 변경 : TEXT길이 연장하기

데이터베이스를 사용하면서 특정 필드의 데이터 타입이나 길이를 변경해야 할 상황이 자주 발생합니다. 특히, 이번 올림 프로젝트에서 ADMIN계정에서 입력 데이터를 저장하는 caption 필드의 길이를 늘여야 할 때, 여러 접근 방법을 통해 이를 효과적으로 관리하는 방법을 정리해놓으려 합니다.

 

 

✅ 관련코드를 분석해본 결과 문제는 VARCHAR(255)의 타입을 갖고 있어서 발생했습니다.

 

해결방법

1-1 수동으로 SQL 실행하기

가장 기본적이고 직접적인 방법은 SQL ALTER TABLE 명령어를 실행하는 것입니다. 이를 통해 필드 타입을 변경하거나 길이를 조정할 수 있습니다. 예를 들어, caption 필드의 길이를 1000자로 늘리고 싶을 때 다음과 같은 SQL 명령어를 사용합니다. 저는 1000자로 여유롭게 해 놨습니다.

ALTER TABLE album
MODIFY COLUMN caption VARCHAR(1000);

 

1-2 TEXT로 변경하기

ALTER TABLE album
MODIFY COLUMN caption TEXT;

 

✅ 여기서 텍스트는 무엇인가? 의문이 들어 아래에 정리하였습니다.

 

TEXT:

  • TEXT 타입은 매우 큰 데이터를 저장할 수 있는데, MySQL에서 TEXT 타입은 최대 65,535 바이트(약 64KB)의 데이터를 저장할 수 있습니다. 필요에 따라 MEDIUMTEXT(최대 16,777,215 바이트, 약 16MB) 또는 LONGTEXT(최대 4,294,967,295 바이트, 약 4GB)를 사용할 수 있습니다.
  • TEXT 타입은 큰 텍스트 데이터나, 글이나 설명과 같이 긴 문자열을 저장하는 데 적합합니다.
  • TEXT 필드는 보통 별도의 저장 공간에 저장되며, 풀 텍스트 인덱싱을 제외하고는 일반 인덱스를 사용할 수 없습니다. 따라서 검색과 인덱싱에 있어 VARCHAR보다 제약이 많습니다.
  • 큰 데이터를 다룰 때 TEXT 타입을 사용하면 메모리 사용량과 성능에 영향을 줄 수 있어 주의가 필요합니다.

 

결론

  • 짧은 문자열을 다루고, 데이터베이스의 성능을 최적화하고 싶다면 VARCHAR를 사용하는 것이 좋습니다.
  • 매우 긴 텍스트를 저장해야 하고, 길이가 가변적이거나 예측할 수 없는 경우 TEXT 타입을 사용하는 것이 적합합니다.

데이터의 특성과 애플리케이션의 요구 사항에 따라 적절한 타입을 선택하는 것이 중요합니다. 처음 설계할 때 길어질 것 같은 칼럼을 찾고 미리 어노테이션을 설정해 주는 것이 좋아 보입니다 ㅎㅎ,

 

@Entity
public class Album {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

	...
    
    @Column(length = 1000)
    private String caption;

   
    ...
}

 

감사합니다!!😋

'SQL' 카테고리의 다른 글

[SQL] 인덱스를 안탔다??! 암시적 형변환, 풀테이블 스캔 문제  (0) 2024.08.02
[SQL/Error] Object[]와 COUNT의 반환 타입  (2) 2024.03.26
[SQL] WHERE, ORDER BY  (1) 2022.10.20
[데이터베이스] SQL 기본 탐구 , Oracle  (4) 2022.10.13
  1. 1-1 수동으로 SQL 실행하기
  2. 1-2 TEXT로 변경하기
  3. TEXT:
'SQL' 카테고리의 다른 글
  • [SQL] 인덱스를 안탔다??! 암시적 형변환, 풀테이블 스캔 문제
  • [SQL/Error] Object[]와 COUNT의 반환 타입
  • [SQL] WHERE, ORDER BY
  • [데이터베이스] SQL 기본 탐구 , Oracle
발달중인 망고
발달중인 망고
Kangwon uni. Department of Computer Engineering
발달중인 망고
망고의 개발일기
발달중인 망고
전체
오늘
어제
  • ROOT (85)
    • 🥭Mango Odyssey (3)
    • Backend (1)
      • 🌿Spring (16)
    • Frontend (3)
      • React (1)
      • Thymeleaf (1)
      • Flutter (1)
    • DevOps (7)
      • AWS (5)
      • Docker (2)
    • Git (5)
    • Knowledge (18)
      • Java (12)
      • Python (6)
    • Activities (10)
      • 우아한 테크 프리코스 (7)
      • itwill (1)
      • 프리온보딩 백엔드 챌린지 12월 (0)
      • 스위프(SWYP) 3기 (1)
      • 팀 맥플러리 (1)
    • SQL (5)
    • IoT (4)
      • 아두이노 (4)
    • AI (1)
    • OS (1)
    • 일상 (8)
      • 일기 (6)
      • 독서 (0)
      • 잡생각 (1)
    • 언젠가 분류될 카테고리 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬
  • AWS
  • Java
  • 문제풀이
  • 코딩테스트
  • python
  • 스프링부트
  • baekjoon
  • 백준
  • EC2
  • 자바
  • MVC
  • 코드트리
  • JPA
  • 코드
  • Model
  • 코드소스
  • 회고록
  • spring boot
  • springboot
  • Spring
  • SQL
  • 아두이노
  • 깃허브
  • 우테코
  • 백엔드
  • DB
  • GIT
  • 알고리즘
  • 소스코드

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
발달중인 망고
[SQL/Error] 필드타입 변경 : TEXT길이 연장하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.