[IDE] Unable to resolve table 에러 해결

Profile-exe·2021년 8월 5일
0

IDE 설정

목록 보기
3/7
post-thumbnail

JetBrains사의 PhpStorm을 이용하여 생활코딩 이고잉 님의 PHP & MySQL 강의를 수강중이었다. 강의에서는 Atom 즉 텍스트 에디터를 사용하셨지만, 나는 IDE를 사용하여 개발하고 싶어 PhpStorm을 사용한다.

수강 도중 테이블의 이름에 빨간 밑줄과 함께 Unable to resolve table '테이블 이름' 오류가 발생해서 해결하는 과정을 기록하려 한다.

이 오류는 그냥 넘어가도 되지만 SQL Dialect를 설정해두면 장점이 많다. 해당 내용은 아래 본문에 서술하도록 하겠다.

함수형으로 DataBase와 연결하는 것을 불호한다. 그래서 강의와 다르게 PHP Data Object 줄여서 PDO를 이용하여 작성하여 강의 코드와 조금 다를 수 있다.

해당 오류는 DataBase에 대한 설정을 해주지 않았기 때문이다.
오류를 예방 또는 해결할 수 있도록 내가 사용한 방법을 서술하겠다.


1. SQL Dialect 설정하기 - DBMS 선택

오류 발생 전에 DataBase와 연결하지 않은 경우 작성한 쿼리문에 SQL dialect is not configured.라는 경고가 뜬다.

여기서 Change dialect to...를 클릭하면 SQL Dialects창이 나오는데 여기서 해당 IDE의 프로젝트나 각 파일마다 SQL Dialect를 선택할 수 있다.

간단히 설명하면 DBMS를 선택하는 창이라고 볼 수 있다. 만약 해당 프로젝트에서 MariaDB만 사용한다면 상단의 Project SQL Dialect에서 MariaDB만 선택해서 굳이 파일마다 DBMS를 선택해줄 필요가 없다.


2. DataBase(Schema) 선택

프로젝트의 SQL Dialect 설정 시 경고 메시지는 사라지지만 topic이라는 테이블 이름이 흰색으로 되어있다.

여기서 DataBase(Schema)를 선택해주면 테이블 이름이 주황색으로 바뀐다. 스키마 선택 방법은 아래와 같다.

편집창에서 마우스 오른쪽 클릭 -> Attach Session 클릭

DataBase Server를 등록해 놓으면 해당 DB Server가 목록에 뜬다. @localhost -> console 선택

선택 후 아래 그림처럼 편집기 상단에 데이터베이스를 위한 네비게이션(?)이 열린다.

우측 상단에서 <schema>를 클릭해 자신이 사용할 DataBase(Schema)를 선택한다.

생활코딩 강의에서 opentutorials라는 DataBase를 만들었으므로 이걸 선택했다.

연결 후 위처럼 테이블 이름이 주황색으로 바뀌고, 마우스를 올려놓으면 해당 테이블의 대한 정보를 알 수 있다.

SELECT문 바로 뒤 애스터리스크*위에 마우스를 올려놓으면 어떠한 요소가 반환되는지도 알 수 있다.

이것으로 DataBase와 해당 소스파일이 연동되어있다는 것을 확인할 수 있다.
따라서 해당 테이블에 없는 column을 쿼리문에 작성하면 오류가 발생한다.


3. 정리

오류 원인

  • DataBase가 해당 프로젝트 또는 파일에 연동되어있지 않아서 발생

해결 방법

  • DataBase등록 후 DBMS선택 (SQL Dialect 설정)
  • 해당 DBMSDataBase(Schema) 선택

장점

해당 오류를 해결하고나서 JetBrainsIDEDB와 연동할 경우 여러 장점이 있다는 것을 알게되었다.

  • database consoleSQL 을 실행하여 바로 결과 확인 가능
  • SQL에 대한 코드 검증
    • 테이블, column 존재 유무 검사
    • 위험한 query문 실행 방지 => 고의적으로 실행 시 Execute 클릭
  • SQL 문법 검사, 자동 완성

게시판 프로젝트 URL

Github - Profile-exe/CRUDboardsite

profile
컴퓨터공학과 학부생

0개의 댓글