본문 바로가기
서버인프라/데이터베이스

Mariadb Create DataBase

by techwold ted 2023. 10. 10.
오늘은 간단한 내용을 살펴 보려 한다. 한번도 DB를 이렇게 공부해봐야 겠다고 생각한 적이 없는데 요즘들어서 오픈소스의 최대 참고서는 Document라고 생각이 되고 있다. 사실 우리가 Document를 보지 않는 이유 중 가장 큰 이유는 영어일거고 두번째는 내가 원하는 내용을 찾기 힘들어서다. 부분적으로 1가지만 원하는데 그게 되지 않다보니 사실 Document를 등한시 하긴 한다. 하지만 우리가 예전부터 하던 얘기중 모든 것은 교과서에 있다. 이거랑 별반 다르지 않다. 응용하는 문제는  다른 문제로 생각하면 된다.

 

가장 기본이 되는 MariaDB의 Create Database에 대해 다시한번 알아보자.

여러분은

CREATE DATABASE IF NOT EXISTS test;
CREATE DATABASE test;

위 두개의 경우를 생각해 본적이 있는가? 저는 주로 아래와 같이 사용한다.

하지만 위의 내용이 Mariadb Document에서 Database생성방법 예시이다. 

 

전자의 내용은 아래와 같다.

이 문장은 test라는 이름의 데이터베이스가 이미 존재하지 않을 경우에만 데이터베이스를 생성하며, 만약 test 데이터베이스가 이미 존재한다면, 아무런 행동도 하지 않고 에러 메시지 없이 실행이 완료됩니다. 이는 데이터베이스의 존재 유무를 확인하면서 중복 생성을 방지하려는 경우 사용한다.

 

후자의 내용은 다음과 같다.

이 문장은 test라는 이름의 데이터베이스를 생성하려고 합니다. 만약 test 데이터베이스가 이미 존재한다면, 실행 중에 에러가 발생하게 됩니다. 즉, 중복된 데이터베이스 이름을 허용하지 않습니다.

 

두 내용의 차이는 사실 없다. 후자를 사용해도 어차피 MariaDB에서 걸러준다는 내용이다.

하지만 미묘한 그리고 아주 중요한 단어에 차이가 하나 보인다. 위에는 아무런 행동도 하지 않는 것이다. 그리고 다른 하나는 행위를 하고 문제가 되어 에러를 발생 시키는 것이다. 별로 중요해 보이지 않는다고? 할수 있다.

하지만 자동화 처리를 할때는 다르다.... 예외처리를 어떻게 해야 할지 이런 문제가 발생한다면, 전자가 조금더 안전하지 않을까 싶다. 안전하단 표현 보다 스크립트 처리시 조금더 편리 할거 같다.

 

아주 작은 차이를 알고 있는 것이 큰 차이를 만드는 것이다.

'서버인프라 > 데이터베이스' 카테고리의 다른 글

이제 Insert 해볼까?  (69) 2023.10.17
Mariadb Table생성  (63) 2023.10.16
MariaDB, MySQL 사용자 관리  (0) 2023.01.03
MariaDB SlowQuery Log 설정  (0) 2022.12.06
Mysql 과 Mariadb dump 복구 성능 테스트  (0) 2022.11.27

댓글