172 похожих чатов

Привет Подскажите куда копать? Нужно задублировать строку изменив некоторые значения потом вытащить айди задублированной

строки
про апдедить значение в другой таблице

Пробовал через with и не совсем понял как это правильно сделать

17 ответов

12 просмотров

что вы с этим ИД потом хотите делать?

Andrei-Serov Автор вопроса
central hardware
что вы с этим ИД потом хотите делать?

Апдейдить строку с которой копирую Короче говоря, идея в том чтобы добавить связь родитель-ребенок внутри таблицы. Все значения стали детьми, но им нужны родители, поэтому сначала дублирую, изменив некоторые параметры, а потом ребенку добавляю ссылку на родителя

В синтаксис INSERT.

Вообще — непонятно, в чём проблема. Пишыте до того места, на котором споткнулись — возможно, мы поймём куда вам дальшэ.

Ну да, с помощью CTE можно делать такие связанные апдейты/инсёрты/делиты, как-то так: WITH parents AS ( INSERT INTO table (…) SELECT FROM table WHERE … RETURNING id, … AS child_id ) UPDATE table SET parent_id = parents.id FROM parents WHERE table.id = parents.child_id; Но точный синтаксис сходу сложно сказать

Andrei-Serov Автор вопроса

да, так и пытаюсь

Andrei-Serov Автор вопроса

Пока что две ошибки не могу победить сначала эту ERROR: missing FROM-clause entry for table "child" потом эту ERROR: more than one row returned by a subquery used as an expression with child as ( select id, uuid_generate_v4() parent_id, type from data.parent_child_table where type='some type' ), parent as ( insert into data.parent_child_table (id, created_at, type) select parent_id, now(), type, from data.parent_child_table returning id ) update data.parent_child_table set parent_id=parent.id where id = child.id ;

Andrei Serov
Пока что две ошибки не могу победить сначала эту E...

Если в update вы обращаетесь к parent и child — то обе таблицы должны быть во from. И к обеим жэлательно написать join condition.

Bx
смущает меня запрос, не понимаю (

Там дофига проблем, конечно. Но лучшэ он их сам порешает. Или хотя бы уткнётся.

Andrei-Serov Автор вопроса
Ilya Anfimov
Если в update вы обращаетесь к parent и child — то...

Bx Спасибо Большое, Ребята =) Все заработало

Andrei-Serov Автор вопроса
Ilya Anfimov
Там дофига проблем, конечно. Но лучшэ он их сам по...

а какие проблемы? Вроде все работает как нужно и довольно быстро. Меньше секунды 1000 записей обновилось

Andrei-Serov Автор вопроса
Andrey Novikov
Как в итоге запрос выглядит-то?

with child as ( select id, uuid_generate_v4() new_parent_id, type from data.parent_child_table where type='some type' ), parent as ( insert into data.parent_child_table (id, created_at, type) select new_parent_id, now(), ‘new type’, from child returning id ) update data.parent_child_table set parent_id=parent.id from child inner join parent on parend.id = child.new_parent_id where id = child.id ;

Andrei Serov
а какие проблемы? Вроде все работает как нужно и д...

Ну там, SELECT для insert несовпадает с форматои insert, в цэлом insert клонирует всю таблицу, а не только нужную часть .

Andrei-Serov Автор вопроса
Ilya Anfimov
Ну там, SELECT для insert несовпадает с форматои i...

а так я эт исправил. Про это ведь речь? insert into data.parent_child_table (id, created_at, type) select new_parent_id, now(), ‘new type’, from child

Andrei Serov
а так я эт исправил. Про это ведь речь? insert i...

У вас дажэ тут лишняя запятая и неправильные кавычки. Впрочем, хорошо, что исправили.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
53
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
1
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Подскажите пожалуйста, а я могу вот такую штуку использовать? rpc, только реализованное в реббите https://www.rabbitmq.com/tutorials/tutorial-six-php ( или https://habr.com/ru...
Artyom
11
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
Всем привет! У меня почему-то по-разному отображается TListView в Debug и Release режимах (FireMonkey)! При запуске под Win приложения TListView заливается программо. в Debug ...
Александр COM
8
Карта сайта