Trino와 MYSQL에서 SQL 예약어와 이름이 같은 컬럼에 대한 처리 방법

NewNewDaddy·2024년 3월 15일
0

코딩 메모장

목록 보기
7/7

0. INTRO

  • 쿼리를 하다보면 분명 문법에 맞게 쿼리를 잘 짰는데 계속 에러가 나는 경우가 있다. 물론 여러가지 경우의 수가 있겠지만 그 중 한 가지는 order, group, explain 등 SQL 문법에서 사용되는 단어 즉, SQL 예약어와 컬럼 혹은 테이블의 이름이 겹치는 경우가 있다.
  • 이런 경우에는 테이블 내에 해당 단어들에 대해서 따로 처리를 해주어야 쿼리에서 에러가 나지 않는다.

1. 본문

1. TRINO

  • 쌍따옴표(")로 예약어와 동일한 단어를 감싸준다.
    CREATE TABLE hive.default.test_table(
    id VARCHAR,
    name VARCHAR,
    node_id INT,
    "order" INT,
    mm VARCHAR,
    dd VARCHAR
    )

2. MYSQL

  • Vectic( ` )으로 예약어와 동일한 단어를 감싸준다.

    CREATE TABLE mysql.test_table(
    id VARCHAR,
    name VARCHAR,
    node_id INT,
    `order` INT,
    `group` INT,
    mm VARCHAR,
    dd VARCHAR
    )
    
    SELECT id, name, `order`, `group`, mm, dd FROM mysql.test_table
profile
데이터 엔지니어의 작업공간 / #PYTHON #CLOUD #SPARK #AWS #GCP #NCLOUD

0개의 댓글