안녕하세요.
요 근래 뭘 좀 만들고 있었는데 약간(?) 미묘한 부분이 있어서 질문 올립니다.
질답이랑 메뉴얼 찾아봤는데 그렇다할 해결책이 나온곳은 없는거 같아서요 =_=
테이블의 컬럼중 하나를 배열로 해서 만들었습니다.
create table text(opt varchar(8)[]));
이렇게 하고 insert into test (opt) values('{}');
이런식으로 opt[1] 에 아무값도 넣지 않고요.
문제는 제가 필요한 데이터가 들어갈때가 있고 안들어갈때가 있는데요.
opt[1] 에만 데이터가 들어갈때가 있고 opt[2] 에만 들어갈때가 있고 opt[10]에만 들어갈때가 있다고 가정했을때.
opt[1]에 위처럼 아무것도 입력되지 않았을때
test=> update test set opt[1]='test1';
ERROR: Invalid array subscripts
이렇게 됩니다 =_=;
opt[1]부터 opt[10]까지 죄다 저렇게 나오더라구요.
그래서
test=> update test set opt='{"test1"}';
이렇게 했더니 정상적으로 입력이 되는것이었습니다.
물론
test=> update test set opt[1]='test1';
이렇게 해도 정상적으로 업데이트가 되고요.
문제는 지금 만들고 있는 프로그램이 처음에는 아무값도 넣지 않았다가 나중에 필요한 옵션들만을 opt[??] 에 업데이트 시켜서 넣는건데
위와 같은 에러메세지에 부딫혀서 -_-;
할수없이 insert 시에 '{"","",""}' 이렇게 기본적으로 몇개를 넣어주었습니다.
아무값도 넣지 않은 상태에서 나중에 업데이트만 할수 있는 방법은 없을까요?
아참 =_=;
opt[1]가 존재할때는 update test set opt[2]='test2'; 가 먹더라구요 -_-;
안될라면 다 안되고 될려면 다 되지 =_=;;;
여튼 아무값도 넣지 않았을때 업데이트가 되는 방법을 알고 싶습니다 ^^;
그럼..
답변 기다리겠습니다~
ps. 배열의 개수를 새는방법이나 배열의 키중 최대값을 구하는 방법은 아직인가요 '.'?; 저만 모르는걸까요 =_=;
|