Size: a a a

2021 February 25

G

Gopneg in sql_ninja
понятно
источник

ДМ

Дмитрий Мачихелян... in sql_ninja
Gopneg
во всех примерах  json_to_recordset вижу  json_to_recordset(..) as ...
CREATE OR REPLACE FUNCTION public.insert_or_update(data jsonb)
 returns void
 LANGUAGE plpgsql
AS $function$
 begin
   insert into public.contacts
   (
   user_id,
   phone_number,
   country_code,
   email,
   contact_name,
   company,job_title,
   account_name,
   contact_group,
   created_at
   )
   select x.userId, x.phoneNumber, x.countryCode, x.contactName,x.email, x.company, x.jobTitle, x.accountName, x.contactGroup, x.createdAt
   from jsonb_to_recordset(data) as x(
   id int8,
   userId int8,
   phoneNumber varchar,
   countryCode varchar,
   contactName varchar,
   email varchar,
   company varchar,
   jobTitle varchar,
   accountName varchar,
   contactGroup int4,
   createdAt timestamp,
   updatedTimes int8
   )
   on conflict  on constraint contacts_un do
   update set
     contact_name = x.contact_name,
     company = x.company,
     contact_group = x.contact_group,
     email = x.email,
     account_name = x.account_name,
     job_title = x.job_title;
 END;
$function$
источник

А

Артем in sql_ninja
Дмитрий Мачихелян
CREATE OR REPLACE FUNCTION public.insert_or_update(data jsonb)
 returns void
 LANGUAGE plpgsql
AS $function$
 begin
   insert into public.contacts
   (
   user_id,
   phone_number,
   country_code,
   email,
   contact_name,
   company,job_title,
   account_name,
   contact_group,
   created_at
   )
   select x.userId, x.phoneNumber, x.countryCode, x.contactName,x.email, x.company, x.jobTitle, x.accountName, x.contactGroup, x.createdAt
   from jsonb_to_recordset(data) as x(
   id int8,
   userId int8,
   phoneNumber varchar,
   countryCode varchar,
   contactName varchar,
   email varchar,
   company varchar,
   jobTitle varchar,
   accountName varchar,
   contactGroup int4,
   createdAt timestamp,
   updatedTimes int8
   )
   on conflict  on constraint contacts_un do
   update set
     contact_name = x.contact_name,
     company = x.company,
     contact_group = x.contact_group,
     email = x.email,
     account_name = x.account_name,
     job_title = x.job_title;
 END;
$function$
Работает?
источник

ДМ

Дмитрий Мачихелян... in sql_ninja
Артем
Работает?
Решилась проблема прошлая, сейчас проблема
SQL Error [42P01]: ERROR: missing FROM-clause entry for table "x"
источник

А

Артем in sql_ninja
Все верно
источник

ДМ

Дмитрий Мачихелян... in sql_ninja
Предполагаю, что нужно опять селект писать на jsonb_to_recordset для update. Но как-то глупым кажется
источник

А

Артем in sql_ninja
Нет
источник

G

Gopneg in sql_ninja
Артем
Работает?
а чо ты там про jsonb тогда пиздел?
источник

А

Артем in sql_ninja
on conflict  on constraint contacts_un do
   update set
     contact_name = excluded.contact_name,
     company = excluded.company,
     contact_group = excluded.contact_group,
     email = excluded.email,
     account_name = excluded.account_name,
     job_title = excluded.job_title;
источник

А

Артем in sql_ninja
с вас 200к рублей
источник

А

Артем in sql_ninja
Gopneg
а чо ты там про jsonb тогда пиздел?
это бинарный жсон который обрабатывается быстрее обычного жсона. Единственный его недостаток, что тк происходит бинарная оптимизация последовательность элементов массива едет. В остальном одни плюсы
источник

G

Gopneg in sql_ninja
я знаю чо такое b
я не понял чо ты тогда мне такое написал на мою фразу про as
источник

А

Артем in sql_ninja
Gopneg
я знаю чо такое b
я не понял чо ты тогда мне такое написал на мою фразу про as
твоя фраза про as замечательная, но тк я добавлял в продолжение беседы, то докинул к твоему сообщению
источник

G

Gopneg in sql_ninja
НЕ ПИШИ МНЕ БОЛЬШЕ!!!!1111
источник

А

Артем in sql_ninja
Gopneg
НЕ ПИШИ МНЕ БОЛЬШЕ!!!!1111
Хорошо. Ромашка на столе
источник

G

Gopneg in sql_ninja
в анус себе засунь
источник

А

Артем in sql_ninja
Gopneg
в анус себе засунь
А вы гурман
источник

ДМ

Дмитрий Мачихелян... in sql_ninja
Артем
on conflict  on constraint contacts_un do
   update set
     contact_name = excluded.contact_name,
     company = excluded.company,
     contact_group = excluded.contact_group,
     email = excluded.email,
     account_name = excluded.account_name,
     job_title = excluded.job_title;
Спасибо)
источник

IP

Ivan Petrov in sql_ninja
Gopneg
в анус себе засунь
Почему именно в 18:14, когда я переключился на телеграм во время скринкаста для компании?
источник

IP

Ivan Petrov in sql_ninja
Теперь у нас на проекте все будут обучаться с таким уведомлением, я не буду монтировать
источник