Size: a a a

pgsql – PostgreSQL

2021 January 20

SK

Serzhan Kassayev in pgsql – PostgreSQL
Anna Lisenkova
array_name double precision[]
Спасибо большое👍🏻
источник

K

Kamoliddin in pgsql – PostgreSQL
Radist
Вам там что нужно? При создании таблицы привязать триггер для логирования имени таблицы из которой идёт удаление?
Тогда в триггерной функции доступны tg_table_name и tg_table_schema. Поэтому в event trigger-е достаточно создать только сам триггер, а саму триггерную функцию лучше создать заранее.
спасибо решил уже
источник

EU

Egor Urvanov in pgsql – PostgreSQL
Привет. Есть таблички:

create table "user" (
   id serial not null constraint account_pkey primary key,
   email text not null,
   password text not null,
);

create table user_role (
   user_id integer not null constraint account_role_account_id_fkey references "user",
   role_id integer not null,
   created_at timestamp(0) default timezone('UTC'::text, now()) not null,
   constraint account_role_pkey primary key (user_id, role_id)
);

Хочу удалить юзера. Делаю так:

DELETE FROM "user" CASCADE;

Получаю

update or delete on table "user" violates foreign key constraint "account_role_account_id_fkey" on table "user_role"

В чём причина?
источник

CO

Chern Oleksander in pgsql – PostgreSQL
Egor Urvanov
Привет. Есть таблички:

create table "user" (
   id serial not null constraint account_pkey primary key,
   email text not null,
   password text not null,
);

create table user_role (
   user_id integer not null constraint account_role_account_id_fkey references "user",
   role_id integer not null,
   created_at timestamp(0) default timezone('UTC'::text, now()) not null,
   constraint account_role_pkey primary key (user_id, role_id)
);

Хочу удалить юзера. Делаю так:

DELETE FROM "user" CASCADE;

Получаю

update or delete on table "user" violates foreign key constraint "account_role_account_id_fkey" on table "user_role"

В чём причина?
TRUNCATE some_table CASCADE
источник

am

a m in pgsql – PostgreSQL
В строке user_id integer not null constraint account_role_account_id_fkey references "user"
https://www.postgresql.org/docs/11/ddl-constraints.html#DDL-CONSTRAINTS-FK
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
а если у него условие ?
источник

D

Dmitriy in pgsql – PostgreSQL
Chern Oleksander
TRUNCATE some_table CASCADE
Надеюсь, он это в проде не попробует
источник

EU

Egor Urvanov in pgsql – PostgreSQL
Dmitriy
Надеюсь, он это в проде не попробует
Это для тестов. Но, опять же, может быть нужно очистить всю таблицу. Или есть сайд-эффекты.
источник

EU

Egor Urvanov in pgsql – PostgreSQL
miruzzy miruzzy
а если у него условие ?
Да, как быть с условием интересно
источник

D

Dmitriy in pgsql – PostgreSQL
Egor Urvanov
Да, как быть с условием интересно
Нужно внешний ключ сделать с каскадом. И юзать обычный DELETE тогда
источник

am

a m in pgsql – PostgreSQL
Поставить ON DELETE CASCADE для внешнего ключа.
источник

EU

Egor Urvanov in pgsql – PostgreSQL
a m
Поставить ON DELETE CASCADE для внешнего ключа.
+
источник

EU

Egor Urvanov in pgsql – PostgreSQL
На производительность сильно влияет? Можно ли около всех внешних ключей это ставить?
источник

EU

Egor Urvanov in pgsql – PostgreSQL
Есть ещё сайд-эффекты?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Egor Urvanov
Привет. Есть таблички:

create table "user" (
   id serial not null constraint account_pkey primary key,
   email text not null,
   password text not null,
);

create table user_role (
   user_id integer not null constraint account_role_account_id_fkey references "user",
   role_id integer not null,
   created_at timestamp(0) default timezone('UTC'::text, now()) not null,
   constraint account_role_pkey primary key (user_id, role_id)
);

Хочу удалить юзера. Делаю так:

DELETE FROM "user" CASCADE;

Получаю

update or delete on table "user" violates foreign key constraint "account_role_account_id_fkey" on table "user_role"

В чём причина?
> DELETE FROM "user" CASCADE;

а как это работает? Postgres не умеет в CASCADE для DELETE же.
источник

am

a m in pgsql – PostgreSQL
Egor Urvanov
На производительность сильно влияет? Можно ли около всех внешних ключей это ставить?
Индекс на внешний ключ накинь и иди спать.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Victor Yegorov
> DELETE FROM "user" CASCADE;

а как это работает? Postgres не умеет в CASCADE для DELETE же.
Как "DELETE FROM "user" AS CASCADE;" конечно.
Таковы радости выдумывания несуществующего синтаксиса. :)
источник

am

a m in pgsql – PostgreSQL
Yaroslav Schekin
Как "DELETE FROM "user" AS CASCADE;" конечно.
Таковы радости выдумывания несуществующего синтаксиса. :)
Шайтан!
источник

K

Kamoliddin in pgsql – PostgreSQL
мне нужно написать функцию которая будет срабатывать в 23:00 каждый день и делать какие то манипуляции с данными. Как такое можно реализовать в postgre ?
источник

EU

Egor Urvanov in pgsql – PostgreSQL
А такое надо реализовывать в БД? Кажется, что лучше не стоит
источник