PostgreSQL에서 JSON 스키마 유효성 검사에 대한 정보를 찾을 수 없습니다. PostgreSQL JSON 데이터 형식에서 JSON 스키마 유효성 검사를 구현하는 방법이 있습니까? 나는 기존의 도구를 잘 모르는 것 같아요PostgreSQL의 JSON 스키마 유효성 검사?
SELECT FROM ...
WHERE (elem->>'age' >= 21)
: 당신이 필요로하는 무엇
PostgreSQL에서 JSON 스키마 유효성 검사에 대한 정보를 찾을 수 없습니다. PostgreSQL JSON 데이터 형식에서 JSON 스키마 유효성 검사를 구현하는 방법이 있습니까? 나는 기존의 도구를 잘 모르는 것 같아요PostgreSQL의 JSON 스키마 유효성 검사?
SELECT FROM ...
WHERE (elem->>'age' >= 21)
: 당신이 필요로하는 무엇
PL/PgSQL에서 JSON 스키마 유효성 검사를 구현하는 PostgreSQL extension이 있습니다.
는 (프로젝트 README 파일에서 가져온)과 같이 사용됩니다
CREATE TABLE example (id serial PRIMARY KEY, data jsonb);
ALTER TABLE example ADD CONSTRAINT data_is_valid CHECK (validate_json_schema('{"type": "object"}', data));
INSERT INTO example (data) VALUES ('{}');
-- INSERT 0 1
INSERT INTO example (data) VALUES ('1');
-- ERROR: new row for relation "example" violates check constraint "data_is_valid"
-- DETAIL: Failing row contains (2, 1).
는
{
"properties": {
"age": {"minimum": 21}
},
"required": ["age"]
}
에 PostgreSQL의 것들로 JSON 스키마 제약을 번역하는 일, 예컨대 :입니다. 나는 MySQL과 비슷한 것을 알고 있는데,이 글은 당신 자신의 글쓰기에 유용 할 수 있지만, PostgreSQL에서 JSON 유형을 사용하는 것에 대해서는 아무 것도 모른다.
이 시점에서 사용할 수있는 스키마 유효성 검사가 없다고 생각합니다. V8 엔진을 유효성 검사에 사용할 가능성이 있는지 알고 계십니까? 일부 OnUpdate/OnInsert 작업에서? – khorvat
오! 죄송 합니다만 오해의 여지가 있으며 유효성 검사가 아닌 쿼리에 JSON 스키마를 사용하는 것에 대해 묻고 있다고 생각했습니다. 예, 제출하기 전에 코드로 확인하거나 코드의 유효성을 검사하는 것이 합리적인 것처럼 보입니다. – cloudfeet
이 리소스를 체크 아웃하십시오. 도움이 될 수 있습니다. http://blog.endpoint.com/2013/06/postgresql-as-nosql-with-data-validation.html – topwik
는 JSON 유효성 검사를 구현하는 또 다른 PostgreSQL extension있다. 사용법은이 C로 작성 주로하기 때문에, "포스트 그레스-JSON 스키마"
CREATE TABLE example (id serial PRIMARY KEY, data jsonb);
-- do is_jsonb_valid instead of validate_json_schema
ALTER TABLE example ADD CONSTRAINT data_is_valid CHECK (is_jsonb_valid('{"type": "object"}', data));
INSERT INTO example (data) VALUES ('{}');
-- INSERT 0 1
INSERT INTO example (data) VALUES ('1');
-- ERROR: new row for relation "example" violates check constraint "data_is_valid"
-- DETAIL: Failing row contains (2, 1).
내가 트윗을 확인하는 몇 가지 벤치 마크를 수행 한하고 20 배 "포스트 그레스-JSON 스키마"보다 빠른 거의 동일 SQL 대신.
면책 조항, 본인은이 확장 프로그램을 작성했습니다.
이 유효성 검사를위한 성능로드 테스트가 있는지 알고 계셨습니까? – khorvat
나는 모른다. 이 코드는 이해하기 쉬운 PL/PgSQL의 꽤 짧습니다 (259 행). 이것은 해석됩니다. 자신의 스키마로 측정해야합니다. – Mordae