update - postgresql jsonb example




¿Validación del esquema JSON en PostgreSQL? (2)

Hay otra github.com/furstenheim/is_jsonb_valid que implementa la validación json. El uso es casi el mismo que el "esquema de Postgres-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).

He realizado algunas pruebas de validación de tweets y es 20 veces más rápido que el "esquema de Postgres-JSON", principalmente porque está escrito en C en lugar de en SQL.

Descargo de responsabilidad, he escrito esta extensión.

No puedo encontrar información sobre la validación de esquema JSON en PostgreSQL, ¿hay alguna forma de implementar la validación de esquema JSON en el tipo de datos PostgreSQL JSON?


Hay una extensión PostgreSQL que implementa la validación del esquema JSON en PL / PgSQL.

Se usa de esta manera (tomado del archivo README del proyecto):

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).




postgresql-json