현재 데이터베이스 확인하기
MySQL에서 현재 사용 중인 데이터베이스의 이름을 확인하려면 SELECT DATABASE() 함수를 사용하면 됩니다.
select database();
동적 삭제를 위한 기본 문법
현재 데이터베이스 이름을 변수에 저장한 뒤, DROP DATABASE 문을 동적으로 생성하고 실행하는 방식입니다. 전체 문법은 다음과 같습니다.
set @anyVariableName = database();
select @anyVariableName;
set @anyVariableName2 = concat('drop database ', @yourVariableName);
prepare anyVariableName3 from @yourVariableName2;
execute anyVariableName3;
이 방식의 핵심은 CONCAT() 함수로 삭제 쿼리 문자열을 만들고, PREPARE와 EXECUTE 문을 통해 해당 쿼리를 실행한다는 점입니다.
실전 예제: 현재 데이터베이스 조회 후 삭제하기
위 문법을 실제로 적용해 현재 데이터베이스를 조회하고 삭제하는 과정을 살펴보겠습니다.
mysql> set @currentDatabase = database();
Query OK, 0 rows affected (0.00 sec)
mysql> select @currentDatabase;
+------------------+
| @currentDatabase |
+------------------+
| employeeonboard |
+------------------+
1 row in set (0.00 sec)
mysql> set @sqlQuery = concat('drop database ', @currentDatabase);
Query OK, 0 rows affected (0.00 sec)
mysql> prepare stmt from @sqlQuery;
Query OK, 0 rows affected (0.04 sec)
Statement prepared
mysql> execute stmt;
Query OK, 0 rows affected (0.56 sec)
먼저 @currentDatabase 변수에 현재 데이터베이스 이름인 'employeeonboard'가 저장됩니다. 이후 CONCAT()으로 'drop database employeeonboard'라는 완성된 SQL 문을 생성하고, 준비된 문(statement)을 실행하여 데이터베이스를 삭제합니다.
삭제 결과 검증하기
데이터베이스가 정상적으로 삭제되었는지 확인하려면 다시 한번 SELECT DATABASE()를 실행합니다.
mysql> select database();
실행 결과는 다음과 같습니다.
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
결과값이 NULL로 반환되었다면 현재 선택된 데이터베이스가 더 이상 존재하지 않는다는 의미입니다. 즉, 대상 데이터베이스가 성공적으로 삭제된 것입니다.
주의 사항
DROP DATABASE는 복구가 불가능한 작업입니다. 실행 전에 반드시 중요한 데이터의 백업을 완료했는지 확인하고, 운영 환경에서는 신중하게 사용해야 합니다.