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

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

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

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

17 ответов

10 просмотров

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

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

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

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

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

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us We offer Interview Support for a low cost variety of technol...
Rambabu Nallamilli
3
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
Карта сайта