PostgreSQL을 배우려고 할 때 몇 가지 문제가있었습니다. person이라는 관계형 객체를 생성 한 다음 기본 정수 키와 person 객체 배열로 구성된 테이블을 생성했습니다. 그러나 나는이 배열에 행을 삽입하는 방법이라는 느낌이 들지만, 개체의 특정 열 (예 : person.name)에 액세스하는 방법을 잘 모르겠습니다.PostgreSQL은 사용자 정의 된 객체의 배열에 삽입하고 선택합니다.
현재 행을 삽입 할 수있는 유일한 방법은 다음과 같습니다. 그러나 적절한 사람 개체 대신 문자열 개체를 만들 수도 있습니다.
INSERT INTO towns VALUES (0, '{"(bob,blue,springfield,33)"}');
참고로 내가 만든 스키마는 다음과 같습니다 당신은 여기에 2 가지, 복합 형 person
의 array
같은 필드 유형을 결합하는
CREATE TYPE person AS (
name text,
favorite_color text,
hometown text,
age integer
);
CREATE TABLE towns (
town_id integer PRIMARY KEY,
people person[]
);
견적과 견적의 신빙성에 감사드립니다!그러나 주어진 예제를 실행 해 보았습니다.'잘못된 배열 리터럴 : "{ROW ("bob ","blue ","springfield ", 33)}"이 발생했습니다. 복합 유형의 인스턴스가있는 테이블을 사용하여보다 철저하게 게시 한 문서를 읽은 후 몇 가지 테스트를 수행했습니다. 복합 유형에 삽입하고 복합 필드에 액세스하기 위해 필드를 배치하기 위해 언급 한 구조로 완벽하게 작동합니다! – Jdeggs
배열은 작은 따옴표로 묶어야하며 이중으로 묶지 않아야합니다. – phobia82