2015-09-08 2 views
0

У меня есть две таблицы под названием book и author.Как вставить данные с помощью json в postgresql 9.2

create table book(bookid BIGSERIAL, 
      bookname VARCHAR, 
      book_type VARCHAR, 
      book_pub_date DATE 
      ); 

create table Author(Authorid BIGSERIAL, 
      Authorname VARCHAR, 
      Author_emailadddr VARCHAR, 
      Author_phone integer 
      ); 

Приложение передаст данные в формате JSON через хранимую функцию. Итак, как хранить данные JSON в таблицах?

Исходные данные (Приложение будет передавать следующие данные через хранимой функции):

{ 
    "bookid" : "1", 
    "bookname" : "sample book", 
    "book type" : "history", 
    "book_pub_date" : "2015-09-08", 
    "Author" : [{ 
      "Authorname" : "xyz", 
      "Author_emailadddr" : "[email protected]", 
      "Author_phone" : "080-99978754" 
     } 
    ] 
} 

Можно ли анализировать данные JSON в таблицах?

(Я использую PostgreSQL 9.2).

ответ

0

В PostgreSQL 9.2 вам нужно будет использовать функцию написанную с PL/Perl, PL/Python и т.д., используя соответствующую JSON поддержки декодирования для данного языка, а также с помощью SPI для затем вставьте извлеченные данные в таблицы , Использовать, например. Модуль json Python или модуль JSON Perl для извлечения полей, то соответствующие SPI вызовы для создания SQL для вставки на основе извлеченных данных.

См:

В частности, обратите внимание на разделы plperl и plpython документы для взаимодействия с базой данных и выполнение запросов.

Это действительно не так уж и отличается от внешнего скрипта.


В PostgreSQL 9.4 и выше вы могли бы начать использовать PostgreSQL собственные json support для извлечения части в формате JSON PL/PgSQL и insert добытых секций. Больше не нужно для plperl или plpython.

Смежные вопросы