MySQL의 INSERT INTO 문에서는 문자열 안에 파이프(|) 문자를 특별한 처리 없이도 그대로 삽입할 수 있습니다. 실제로 파이프 문자가 거부되는 경우는 없으며, 작은따옴표(')로 감싼 일반 문자열 리터럴이라면 문제없이 저장됩니다.
테스트용 테이블 생성하기
먼저 예제를 위해 테이블을 하나 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table PipeInsertDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserPassword varchar(100) -> ); Query OK, 0 rows affected (0.52 sec)
위 쿼리는 자동 증가(AUTO_INCREMENT) 기본키인 UserId와 비밀번호를 저장할 UserPassword 컬럼으로 구성된 테이블을 만듭니다.
파이프 문자가 포함된 데이터 삽입하기
이제 INSERT 명령을 사용하여 파이프(|) 문자가 포함된 레코드들을 삽입해 보겠습니다. 파이프 문자는 문자열의 시작 부분, 중간, 끝 등 어느 위치에 있어도 정상적으로 입력됩니다.
mysql> insert into PipeInsertDemo(UserPassword) values('John123|');
Query OK, 1 row affected (0.15 sec)
mysql> insert into PipeInsertDemo(UserPassword) values('|123456CarolTaylor');
Query OK, 1 row affected (0.13 sec)
mysql> insert into PipeInsertDemo(UserPassword) values('Adam|345Smith');
Query OK, 1 row affected (0.20 sec)세 개의 INSERT 문이 모두 오류 없이 실행되었음을 확인할 수 있습니다. 첫 번째 값은 문자열 끝에, 두 번째 값은 시작 부분에, 세 번째 값은 중간에 파이프 문자가 위치합니다.
저장된 데이터 확인하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from PipeInsertDemo;
실행 결과는 다음과 같습니다.
+--------+--------------------+ | UserId | UserPassword | +--------+--------------------+ | 1 | John123| | | 2 | |123456CarolTaylor | | 4 | Adam|345Smith | +--------+--------------------+ 3 rows in set (0.00 sec)
정리
위 결과에서 볼 수 있듯이, 파이프(|) 문자는 MySQL에서 특별한 의미를 갖지 않기 때문에 문자열 내 어느 위치에든 아무런 제약 없이 삽입됩니다. 다만 주의할 점은, 이후 SELECT 결과를 콘솔이나 텍스트 파일로 출력할 때 파이프 문자가 구분자로 사용되는 경우 출력 형식이 어색하게 보일 수 있다는 것입니다. 이는 저장 시점의 문제가 아니라 단순히 화면 표시상의 현상이므로, 실제 데이터에는 전혀 영향을 주지 않습니다.