2017-01-28 3 views
0

Мой тип:У меня есть автор моего типа, и я положил его на карту в свой стол. Как получить доступ к автору, удалить, например. имя или удалить последнее имя и т. д.?

CREATE TYPE author(
    firstname text, 
    lastname text 
); 

Мой стол:

CREATE TABLE ksiazki(
    publishing text, 
    origin text, 
    id int, 
    title text, 
    author map<text, frozen<author>>, 
    categories set<text>, 
    pages int, 
    PRIMARY KEY ((publishing,origin), id, title) 
); 
+0

Вы не можете обновлять или удалять имя или фамилию из замороженного автора. вам нужно обновить или удалить это значение всего автора –

+0

Что такое синтаксис для этого? – quimak

ответ

0

Вы не можете изменить или удалить Firstname или фамилию из замороженного автора. вам необходимо обновить или удалить это значение всего автора

Вы можете вставить данные, используя.

INSERT INTO ksiazki (publishing , origin , id , title , author) VALUES ('pub', 'orig', 1, 'Title', {'author 1' : {firstname:'MD', lastname : 'Test'}}) ; 

Если вы хотите изменить «автора 1» имя просто обновить с этим запросом:

UPDATE ksiazki SET author = author + {'author 1' : {firstname:'Ashraful', lastname : 'Islam'}} where publishing = 'pub' and origin = 'orig' and id = 1 and title = 'Title'; 

Если вы хотите добавить другой автор «автор 2» использовать этот запрос:

UPDATE ksiazki SET author = author + {'author 2' : {firstname:'Ashraful', lastname : 'Alom'}} where publishing = 'pub' and origin = 'orig' and id = 1 and title = 'Title'; 

Если вы хотите удалить 'author 2', воспользуйтесь этим предложением:

DELETE author['author 2'] FROM ksiazki where publishing = 'pub' and origin = 'orig' and id = 1 and title = 'Title'; 
+1

Отлично работает, спасибо. – quimak