MySQL에서 sp_help를 대체하는 방법
SQL Server의 sp_help는 테이블 구조, 필드 유형, 제약 조건 등을 한눈에 확인할 수 있는 시스템 저장 프로시저입니다. MySQL에서는 이와 동일한 기능을 SHOW CREATE 명령어를 통해 손쉽게 구현할 수 있습니다.
CASE 1: 테이블 구조 확인
테이블의 생성 문(필드 유형, 기본 키, 외래 키 등 제약 조건 포함)을 확인하려면 아래 구문을 사용합니다.
SHOW CREATE TABLE yourTableName;
CASE 2: 저장 프로시저 정의 확인
저장 프로시저의 정의 내용을 확인하려면 아래 구문을 사용합니다.
SHOW CREATE PROCEDURE yourProcedureName;
실습 예제: 테이블 생성하기
먼저 예제용 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
EmployeeId int NOT NULL AUTO_INCREMENT,
EmployeeFirstName varchar(40) NOT NULL,
EmployeeLastName varchar(40) NOT NULL,
EmployeeAge int,
EmployeeCountryName varchar(40),
EmployeeCityName varchar(40),
PRIMARY KEY(EmployeeId),
UNIQUE KEY(EmployeeFirstName,EmployeeCityName)
);
Query OK, 0 rows affected (0.97 sec)
SHOW CREATE TABLE 실행하기
이제 앞서 살펴본 구문을 실제 테이블에 적용해 보겠습니다.
mysql> SHOW CREATE TABLE DemoTable;
실행하면 필드 이름, 데이터 유형, 기본 키(PK) 및 고유 키(UNIQUE KEY) 제약 조건이 모두 포함된 테이블 생성 문이 출력됩니다.
+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DemoTable | CREATE TABLE `demotable` (`EmployeeId` int(11) NOT NULL AUTO_INCREMENT, `EmployeeFirstName` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `EmployeeLastName` varchar(40) COLLATE utf8_unicode_ci NOT NULL, `EmployeeAge` int(11) DEFAULT NULL, `EmployeeCountryName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeCityName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`EmployeeId`), UNIQUE KEY `EmployeeFirstName` (`EmployeeFirstName`,`EmployeeCityName`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.03 sec)
추가 팁: 간단한 구조 조회는 DESCRIBE 활용
생성 문 전체가 아니라 필드 이름, 데이터 유형, NULL 허용 여부, 키 정보만 빠르게 확인하고 싶다면 DESCRIBE DemoTable; 또는 축약형인 DESC DemoTable; 명령어를 사용하는 것이 더 편리합니다. 반면 스토리지 엔진, 문자셋, 콜레이션까지 포함한 상세 정의가 필요하다면 SHOW CREATE TABLE이 가장 적합한 선택입니다.