DB 공부 기록/postgresql
[postgresql] json 필드에 작은 따옴표가 있을때 insert하기
jaeha lee
2020. 11. 21. 19:47
우리에게 json_field라는, json형식의 칼럼이 들어있는 mytable이라는 테이블이 주어져있다고 하자. 예시 상황이니 다른 칼럼들을 신경쓰지 말고, 아래 sql문이 에러 없이 돌아가는 테이블이라고 치자.
1
2
3
4
5
6
7
8
9
|
INSERT INTO mytable (json_field)
VALUES (
'{
"title": "hello",
"content": "never mind",
"date": "2020-11-21",
"tags": ["diary", "2020-11"]
}'
);
|
cs |
대강 상황을 만들어보자면, 우리는 테이블에 제목, 내용, 날짜, 태그가 들어있는, 게시글 같은 걸 저장하려 한다고 해보자. 그렇다면, 여기서 제목을 "I'm here!" 같이, 작은 따옴표가 들어가도록 지어서 테이블에 넣으려고 하면 어떻게 될까?
1
2
3
4
5
6
7
8
9
|
INSERT INTO mytable (json_field)
VALUES (
'{
"title": "I'm here!",
"content": "error!",
"date": "2020-11-21",
"tags": ["diary", "2020-11"]
}'
);
|
cs |
당장 위의 코드를 시각화할때 사용한 color scripter에서부터, I 옆의 작은 따옴표 뒤로 색이 달라져버린 것을 볼 수 있다. 즉, json 값을 감싸는 작은따옴표가 끊어져버린 것. 이런 경우에는 어떻게 작은 따옴표를 살릴 수 있을까?
답은, 작은 따옴표를 입력하고 싶으면 작은 따옴표를 연이어 두개를 사용하는 것. 아래와 같이 쓰면 된다.
1
2
3
4
5
6
7
8
9
|
INSERT INTO mytable (json_field)
VALUES (
'{
"title": "I''m here!",
"content": "error!",
"date": "2020-11-21",
"tags": ["diary", "2020-11"]
}'
);
|
cs |
이렇게 하면 원하는 대로 json 필드를 insert할 수 있음을 확인할 수 있다.
반응형