[데이터베이스]
[DB] postgreSQL json - update 하기
미나미나미
2019. 10. 16. 22:47
# JSON 값 넣기 : https://minaminaworld.tistory.com/133
minaminaworld.tistory.com
# 테이블 구조
- index : 인덱스 값 - 형식serial,
- stuName : 학생 이름 - varchar ,
- stuGrade : 학생 학년 - varchar,
- stuInfo : 학생 정보 - json
-- Drop table
-- DROP TABLE "testGroup".teststudentinfo;
CREATE TABLE "testGroup".teststudentinfo (
"index" serial NOT NULL,
"stuName" varchar NULL,
"stuGrade" varchar NULL,
"stuInfo" json NULL
);
-- Permissions
ALTER TABLE "testGroup".teststudentinfo OWNER TO postgres;
GRANT ALL ON TABLE "testGroup".teststudentinfo TO postgres;
# 학생 중에서 4학년인 경우 stuinfo(json) graduteCheck : true 추가.
- 중복 되는 항목이 없기 떄문에, 추가가 된다.
update "testGroup".teststudentinfo set
"stuInfo" = "stuInfo"::jsonb || '{"graduteCheck" : "true"}'
where "stuGrade" = '4';
# 학생 중에서 stuinfo. major가 수학과인 사람을 통계학과로 전환.
- major는 중복 되기 떄문에, 덮어쓰기가 된다.
update "testGroup".teststudentinfo set
"stuInfo" = "stuInfo"::jsonb || '{"major" : "통계학과"}'
where "stuInfo"->>'major' = '수학과';
# 손오공이라는 학생의 전적대인 '경호학과'가 빠졌습니다. 추가합니다.
- json에 json을 넣는 경우도 중복이 되지 않으면, 추가가 된다.
update "testGroup".teststudentinfo set
"stuInfo" = "stuInfo"::jsonb || '{"preUnivercity" : {"major" : "경호학과"}}'
where "stuName"= '손오공';