Хотел бы подтянуть свои знания по sql какую документацию мне лучше читать?

|
Dhakfuabfk 2022-07-01 18:52:33
И сейчас мы вернёмся к тому, что нужно выставить в таблице items status_id inactive
wrabbitt 2022-07-01 18:52:59
Cancelled и есть) сократил всё для читаемости.
Если все попадут под условие items.status = ‘Cancel’ И history.updated_at < ‘дата’, все такие строки нужно снести.
И из таблицы issues тоже удалить, где items.id = issues.item_id, которые попадают под условие выше
kotovr99 2022-07-01 18:54:13
pgsql-392575.jpg
Всем привет. Можете подсказать, что я делаю не так?
dotX12 2022-07-01 18:55:08
kotovr99 2022-07-01 18:54:13
Всем привет. Можете подсказать, что я делаю не так?

… = p.product_id
на алис не сослаться

Dhakfuabfk 2022-07-01 18:55:52
wrabbitt 2022-07-01 18:52:59
Cancelled и есть) сократил всё для читаемости.
Если все попадут под условие items.status = ‘Cancel’ И history.updated_at < ‘дата’, все такие строки нужно снести.
И из таблицы issues тоже удалить, где items.id = issues.item_id, которые попадают под условие выше

Ну тогда поставить каскадное удаление по внешним ключам, для начала. Ну а удаление можно и подзапросом сделать с оператором NOT EXISTS для history.updated_at > ‘дата’

wrabbitt 2022-07-01 18:56:12
Dhakfuabfk 2022-07-01 18:55:52
Ну тогда поставить каскадное удаление по внешним ключам, для начала. Ну а удаление можно и подзапросом сделать с оператором NOT EXISTS для history.updated_at > ‘дата’

не умею в каскады(

kotovr99 2022-07-01 18:56:20
dotX12 2022-07-01 18:55:08
… = p.product_id
на алис не сослаться

pgsql-392579.jpg
Я пробовал, но ошибка такая, я погуглил, не понял, что нет

Роман Жарков 2022-07-01 18:56:44
kotovr99 2022-07-01 18:54:13
Всем привет. Можете подсказать, что я делаю не так?

Красно-коричневую строчку не читаете.

Dhakfuabfk 2022-07-01 18:57:04
wrabbitt 2022-07-01 18:56:12
не умею в каскады(

Надо учиться)

wrabbitt 2022-07-01 18:57:44
Dhakfuabfk 2022-07-01 18:57:04
Надо учиться)

Надо. Учусь. Но кое-кто не уйдёт на выходные, если сегодня не скинет корректный запрос).. 🙏

Hover2 2022-07-01 18:57:58
kotovr99 2022-07-01 18:54:13
Всем привет. Можете подсказать, что я делаю не так?

Непонятно из какой таблицы в SELECT’е пытаетесь брать product_id

Dhakfuabfk 2022-07-01 18:59:18
wrabbitt 2022-07-01 18:57:44
Надо. Учусь. Но кое-кто не уйдёт на выходные, если сегодня не скинет корректный запрос).. 🙏

Что у вас по внешним ключам стоит в таблицах истории и issues? Если ничего не происходит при удалении, то сначала удалить всё из айтемов, а потом для каждой таблицы удалять записи, по которым item_id не нашло в таблице items. Порядок практически не важен. Главное историю сначала не почистить ибо потом не понятно будет что с двух других таблиц удалять)

dotX12 2022-07-01 18:59:47
kotovr99 2022-07-01 18:56:20
Я пробовал, но ошибка такая, я погуглил, не понял, что нет

SELECT p.id as p_id, pa.id as pa_id FROM table as p
LEFT JOIN products_atts pa ON pa.product_id = p.product_id

kotovr99 2022-07-01 19:02:55
dotX12 2022-07-01 18:59:47
SELECT p.id as p_id, pa.id as pa_id FROM table as p
LEFT JOIN products_atts pa ON pa.product_id = p.product_id

Да, так, вроде, работает, спасибо!

wrabbitt 2022-07-01 19:03:18
Dhakfuabfk 2022-07-01 18:59:18
Что у вас по внешним ключам стоит в таблицах истории и issues? Если ничего не происходит при удалении, то сначала удалить всё из айтемов, а потом для каждой таблицы удалять записи, по которым item_id не нашло в таблице items. Порядок практически не важен. Главное историю сначала не почистить ибо потом не понятно будет что с двух других таблиц удалять)

Внешние ключи в issues и history — item_id.
Важно отдать это одним запросом..

Dhakfuabfk 2022-07-01 19:04:23
wrabbitt 2022-07-01 19:03:18
Внешние ключи в issues и history — item_id.
Важно отдать это одним запросом..

Сам внешний ключ если содержит «ON DELETE CASCADE, то все записи и так удаляться при удалении item»

alalalina 2022-07-01 19:24:43
Ребята, у меня есть сервак, я хочу к нему подсоеденить еще один диск и там сделать бд. Это план минимум.

План максимум, это что бы еще старые базы которые на основном диске, продолжили работать.

Как сделать это?

knyagininda 2022-07-01 19:33:27
alalalina 2022-07-01 19:24:43
Ребята, у меня есть сервак, я хочу к нему подсоеденить еще один диск и там сделать бд. Это план минимум.

План максимум, это что бы еще старые базы которые на основном диске, продолжили работать.

Как сделать это?

create tablespace

alalalina 2022-07-01 19:34:11
knyagininda 2022-07-01 19:33:27
create tablespace

Even though located outside the main PostgreSQL data directory, tablespaces are an integral part of the database cluster and cannot be treated as an autonomous collection of data files. They are dependent on metadata contained in the main data directory, and therefore cannot be attached to a different database cluster or backed up individually. Similarly, if you lose a tablespace (file deletion, disk failure, etc), the database cluster might become unreadable or unable to start. Placing a tablespace on a temporary file system like a RAM disk risks the reliability of the entire cluster.

knyagininda 2022-07-01 19:37:54
alalalina 2022-07-01 19:34:11
Even though located outside the main PostgreSQL data directory, tablespaces are an integral part of the database cluster and cannot be treated as an autonomous collection of data files. They are dependent on metadata contained in the main data directory, and therefore cannot be attached to a different database cluster or backed up individually. Similarly, if you lose a tablespace (file deletion, disk failure, etc), the database cluster might become unreadable or unable to start. Placing a tablespace on a temporary file system like a RAM disk risks the reliability of the entire cluster.

И?

zemetran 2022-07-01 19:38:30
knyagininda 2022-07-01 19:37:54
И?

Попробуй прочесть вслух Placing a tablespace on a temporary file system like a RAM disk risks the reliability of the entire cluster.

zemetran 2022-07-01 19:39:44
Это я так, оффтоплю, но чет чуть язык не сломал х)
knyagininda 2022-07-01 19:40:26
zemetran 2022-07-01 19:38:30
Попробуй прочесть вслух Placing a tablespace on a temporary file system like a RAM disk risks the reliability of the entire cluster.

Выше в вопросе написано диск… Я так понимаю обычный диск а не ram

joe_goldbergg 2022-07-01 19:46:19
Подскажите, как выбрать все ряды в asyncpg? fetchall не работает
I_am_romank 2022-07-01 19:46:42
alalalina 2022-07-01 19:24:43
Ребята, у меня есть сервак, я хочу к нему подсоеденить еще один диск и там сделать бд. Это план минимум.

План максимум, это что бы еще старые базы которые на основном диске, продолжили работать.

Как сделать это?

Если просто использовать пространство на диске, то, как вариант, tablespace. Если же нужно запустить отдельный сервис с БД, то это реализуется через создание другого cluster (в терминах ПГ)

dolfinus 2022-07-01 19:53:37
joe_goldbergg 2022-07-01 19:46:19
Подскажите, как выбрать все ряды в asyncpg? fetchall не работает

Что значит не работает

joe_goldbergg 2022-07-01 19:54:17
dolfinus 2022-07-01 19:53:37
Что значит не работает

ну я так понял уже, что в asyncpg, вместо fetchall — просто fetch

IvanLitovchenko 2022-07-01 20:08:49
Хотел бы подтянуть свои знания по sql какую документацию мне лучше читать?
IvanLitovchenko 2022-07-01 20:10:12
Я например не знал что в insert можно select запихать
KoNEWV 2022-07-01 20:15:17
Надо вместо капчи на вход в группу поставить опросник:
— я прочитал сообщение со списком литературы
— я прочитал сообщение со списком курсов
— я прочитал сообщение как постить баг репорты
))
wrabbitt 2022-07-01 20:18:24
Тогда только роботы заходить будут)
73061 2022-07-01 20:30:48
Добрый день. Скажите, пожалуйста, что за ошибку указывает в DBeaver Data source was invalidated
Live connection count: 2/2 перевод Источник данных был признан недействительным
Количество подключений в реальном времени: 2/2
73061 2022-07-01 20:32:06
Подключение есть, но он отключается при нажатии на кнопку Проверить соединение
joyful 2022-07-01 21:25:50
73061 2022-07-01 20:30:48
Добрый день. Скажите, пожалуйста, что за ошибку указывает в DBeaver Data source was invalidated
Live connection count: 2/2 перевод Источник данных был признан недействительным
Количество подключений в реальном времени: 2/2

Ну хорошо. Через psql пускает ?

73061 2022-07-01 22:01:31
Пробую ещё, спасибо, Марсель. Напишу что получится.
zaitsevkv 2022-07-01 22:03:26
Хм как то с history не понятно — нет записей больше чем ?
pavel64 2022-07-01 22:16:53
Или enum)
you_know_my_name 2022-07-01 22:22:07
а лучше по кодам связать
you_know_my_name 2022-07-01 22:23:08
чтобы фильтровать по коду и не джойнить справочник каждый раз
pavel64 2022-07-01 22:24:17
you_know_my_name 2022-07-01 22:22:07
а лучше по кодам связать

Это как?

you_know_my_name 2022-07-01 22:25:34
в справочнике статусов сделать колонку code и забить туда ACTIVE, DELETED и т.д… и сделать в целевой таблице колонку status_code и навесить fk до справочника
zaitsevkv 2022-07-01 22:27:27
you_know_my_name 2022-07-01 22:23:08
чтобы фильтровать по коду и не джойнить справочник каждый раз

зачем его каждый раз join????

you_know_my_name 2022-07-01 22:28:04
а как фильтровать по id?)
zaitsevkv 2022-07-01 22:28:54
you_know_my_name 2022-07-01 22:28:04
а как фильтровать по id?)

получить в приложении так то)))).

you_know_my_name 2022-07-01 22:29:05
а если они изменятся на другом стенде? ну и это не информативно и вообще говнокод
zaitsevkv 2022-07-01 22:30:38
you_know_my_name 2022-07-01 22:29:05
а если они изменятся на другом стенде? ну и это не информативно и вообще говнокод

findbyname () как то лучше жесткого text во всех ключах)

you_know_my_name 2022-07-01 22:30:49
zaitsevkv 2022-07-01 22:28:54
получить в приложении так то)))).

всё зависит от реализации 🙂 у меня вот вьюхи для апи приложения не выдают записи со статусом DELETED

you_know_my_name 2022-07-01 22:31:57
zaitsevkv 2022-07-01 22:30:38
findbyname () как то лучше жесткого text во всех ключах)

коды для справочников — стандартная практика

zaitsevkv 2022-07-01 22:32:56
you_know_my_name 2022-07-01 22:31:57
коды для справочников — стандартная практика

особеннно приятно их заменить с cancel на canceled, но дело вкуса конечно

you_know_my_name 2022-07-01 22:33:20
где заменить? fk не даст
|