Update how_to_update_views.md
This commit is contained in:
parent
b93dd4ba5e
commit
9cb172acd3
@ -64,6 +64,31 @@ WHERE c.relkind = 'v'
|
|||||||
AND c.relname IN ('document_details', 'author_documents');
|
AND c.relname IN ('document_details', 'author_documents');
|
||||||
|
|
||||||
```
|
```
|
||||||
|
получим вывод
|
||||||
|
```csv
|
||||||
|
"create_script"
|
||||||
|
"CREATE OR REPLACE VIEW public.author_documents AS SELECT a.name AS author_name,
|
||||||
|
a.email,
|
||||||
|
dd.doc_id,
|
||||||
|
dd.title,
|
||||||
|
dd.type_name,
|
||||||
|
dd.content,
|
||||||
|
dd.updated_at
|
||||||
|
FROM authors a
|
||||||
|
JOIN document_authors da ON a.author_id = da.author_id
|
||||||
|
JOIN document_details dd ON da.doc_id = dd.doc_id;;"
|
||||||
|
"CREATE OR REPLACE VIEW public.document_details AS SELECT d.doc_id,
|
||||||
|
d.title,
|
||||||
|
dt.type_name,
|
||||||
|
ldv.content,
|
||||||
|
ldv.updated_at,
|
||||||
|
d.created_at
|
||||||
|
FROM documents d
|
||||||
|
JOIN document_types dt ON d.type_id = dt.type_id
|
||||||
|
LEFT JOIN latest_document_versions ldv ON d.doc_id = ldv.doc_id;;"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 3. Получить корректный порядок удаления
|
### 3. Получить корректный порядок удаления
|
||||||
@ -105,3 +130,32 @@ ORDER BY object_type DESC;
|
|||||||
```sql
|
```sql
|
||||||
DROP VIEW IF EXISTS public.document_details CASCADE;
|
DROP VIEW IF EXISTS public.document_details CASCADE;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 5. Обновляем document_details с измененной структурой
|
||||||
|
```sql
|
||||||
|
CREATE OR REPLACE VIEW public.document_details AS
|
||||||
|
SELECT
|
||||||
|
d.doc_id,
|
||||||
|
d.title,
|
||||||
|
dt.type_name,
|
||||||
|
ldv.content,
|
||||||
|
ldv.updated_at,
|
||||||
|
d.created_at -- Добавили поле created_at
|
||||||
|
FROM documents d
|
||||||
|
JOIN document_types dt ON d.type_id = dt.type_id
|
||||||
|
LEFT JOIN latest_document_versions ldv ON d.doc_id = ldv.doc_id;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Восстанавливаем необходимое, скриптами из п.2
|
||||||
|
```sql
|
||||||
|
CREATE OR REPLACE VIEW public.author_documents AS SELECT a.name AS author_name,
|
||||||
|
a.email,
|
||||||
|
dd.doc_id,
|
||||||
|
dd.title,
|
||||||
|
dd.type_name,
|
||||||
|
dd.content,
|
||||||
|
dd.updated_at
|
||||||
|
FROM authors a
|
||||||
|
JOIN document_authors da ON a.author_id = da.author_id
|
||||||
|
JOIN document_details dd ON da.doc_id = dd.doc_id;
|
||||||
|
```
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user