Коллеги всем привет, решаю задачу на степике, объясните плз где ошибка закралась? — DevArchive
Содержание:
норм это время выполнение или что?
Какой запрос возвращает только колонки таблицы?
Кто знает в чем может быть ошибка в этом коде?
А это вообще что за синтаксис?
Коллеги всем привет, решаю задачу на степике, объясните плз где ошибка закралась?
Есть ли виртуальный бесплатный сервер для начинающих ?
В докере не хочешь поднять?
Для каких целей нужна виртуалка?
так как лучше поступить?
altair86 2022-09-10 19:55:12
ты пробегаешь по 1,2 млн записей. Для них 352 мс — норм
RasulovMuzaffar 2022-09-10 20:02:02
хорошо
RasulovMuzaffar 2022-09-10 20:03:22
ещё кое что заметил, что эти же данные без группировки обрабатывается в разы быстрее
sans404 2022-09-10 21:38:04
Какой запрос возвращает только колонки таблицы?
zaitsevkv 2022-09-10 21:41:19
Перечень колонок?
Dhakfuabfk 2022-09-10 21:42:00
d table;
sans404 2022-09-10 21:42:50
zaitsevkv 2022-09-10 21:43:09
Выше ответили, ну или
SELECT
*
FROM
information_schema. columns
WHERE
table_schema = ‘schema_name’
AND table_name = ‘table_name’;
sans404 2022-09-10 21:43:57
Спасибо
И того кто написал выше тоже благодарю
Aidos Kabezov 2022-09-10 21:44:26
Доброго времени суток! Кто знает в чем может быть ошибка в этом коде?
ALTER TABLE sl.lesson {
DROP CONSTRAINT lesson_timetable_id_fkey |
DROP COLUMN timetable_id
}
ALTER TABLE sl.timetable {
ADD COLUMN lesson_id uuid |
ADD FOREIGN KEY («lesson_group_id») REFERENCES «lesson_id»
}
В базе данных на pgsql хотел удалить из lesson timetable_id, и создать в timetable lesson_id
zaitsevkv 2022-09-10 21:45:27
А это вообще что за синтаксис?
Aidos Kabezov 2022-09-10 21:46:22
Могу вот так дать
ALTER TABLE «sl».»lesson» DROP CONSTRAINT «lesson_timetable_id_fkey»;
TABLE «sl». »lesson» DROP COLUMN «timetable_id»;
TABLE «sl».»timetable» ADD COLUMN «lesson_id» uuid;
ALTER TABLE «sl».»timetable» ADD FOREIGN KEY («lesson_group_id») REFERENCES «lesson_id»;
zaitsevkv 2022-09-10 21:47:58
https://postgrespro.ru/docs/postgrespro/14/sql-altertable
Postgres Pro Standard : Документация: 14: ALTER TABLE — postgrespro.ru
Mikhail_tushev 2022-09-10 21:48:46
еще желательно бы ошибку написать, а то гадания на кофейной гуще
zaitsevkv 2022-09-10 21:49:19
Посмотрите на синтаксис внимательно.
zaitsevkv
Так два alter не хватает.
Aidos Kabezov 2022-09-10 21:53:04
ой, я их удалял для того чтобы посмотреть что будет
Aidos Kabezov 2022-09-10 21:53:52
ALTER TABLE «sl».»lesson» DROP CONSTRAINT «lesson_timetable_id_fkey»;
ALTER TABLE «sl».»lesson» DROP COLUMN «timetable_id»;
ALTER TABLE «sl». »timetable» ADD COLUMN «lesson_id» uuid;
ALTER TABLE «sl».»timetable» ADD FOREIGN KEY («lesson_group_id») REFERENCES «lesson_id»;
а так вот
и так и ся не работают
zaitsevkv 2022-09-10 21:54:21
Так вас выше попросили прислать ошибку
DenverRF 2022-09-10 22:01:58
Коллеги всем привет, решаю задачу на степике, объясните плз где ошибка закралась? текст задания «Вывести жанр (или жанры), в котором было заказано больше всего экземпляров книг, указать это количество. Последний столбец назвать Количество» Ошибку с псевдонимами таблиц понял, но как их обозначить?
zaitsevkv 2022-09-10 22:06:09
И последняя команда посмотрите про references в документации
Aidos Kabezov 2022-09-10 22:07:06
Хорошо
. 2022-09-11 08:18:28
Есть ли виртуальный бесплатный сервер для начинающих ?
Ну бывает ж бесплатный виртуальный сервер с мелкими характеристиками
Для бэкенда
recursiveDesert 2022-09-11 08:21:46
Та погугли , думаю есть бесплатные триал справки на несколько дней, но постоянно придется перерегистрации делать. В зомро виртуальные серваки дешевые
anatolijs 2022-09-11 08:22:33
В докере не хочешь поднять? Стильно, модно, локально
Grender_X 2022-09-11 08:24:50
Кому не сложно покидайте меня в разные чаты пожалуйста
subbotinv 2022-09-11 08:25:22
php -S localhost
subbotinv 2022-09-11 08:26:05
Сорян, ошибся чатом. Для каких целей нужна виртуалка?
BerezhnevVladimir 2022-09-11 08:45:19
всем привет, сижу на NixOS. Вот что выдаёт попытка запуска демона: initdb: error: could not create directory «/data»: Permission denied
Стоит ли причислять юзера postgres к группе wheel, чтоб он мог сам создать папку?
BerezhnevVladimir 2022-09-11 08:46:14
насколько знаю AWS предоставляет бесплатный сервер на 1 год
Роман Жарков 2022-09-11 08:47:05
Вопрос не коррелирует с вашим никнеймом.
BerezhnevVladimir 2022-09-11 09:05:49
так как лучше поступить?
BerezhnevVladimir 2022-09-11 09:06:19
ну ладно, раз уж у меня nixos, не буду бояться эксперементировать и ломать систему
Sn00p 2022-09-11 09:10:42
environment.pathsToLink = [ «/share» ];
Sn00p 2022-09-11 09:11:12
но это году в 2017 вроде починили
Добавить новые столбцы в таблицу в PostgreSQL | от Javascript Jeep🚙💨 | JavaScript_Dots
Добавить новые столбцы в таблицу в PostgreSQL | от Javascript Jeep🚙💨 | JavaScript_Dots | MediumJavascript Jeep🚙💨
·
Подписаться
Опубликовано в
·
2 мин чтения
·
30 мая 2 020
Узнайте, как добавить новые столбцы в таблицу в PostgreSQL
javascriptjeep. comДобавление столбцов
Мы можем комбинировать ALTER TABLE
и ДОБАВИТЬ СТОЛБЦ
для добавления новых столбцов в существующую таблицу.
ALTER TABLE table_name
ADD COLUMN column_name1 data_type,
ADD COLUMN column_name1 data_type,
Ограничения;
Автор Javascript Jeep🚙💨
3,9 тыс. подписчиков
·Редактор для
Статьи, связанные с JavaScript.
Еще от Javascript Jeep🚙💨 и JavaScript_Dots
Javascript Jeep🚙💨
в
URLSearchParams в JavaScript
Узнайте, как использовать URLSearchParams для запроса URL.
·2 мин чтения·23 мая 2020 г.
Javascript Jeep🚙💨
in
Cache API в JavaScript
Узнайте, как кэшировать ресурсы с помощью Cache API в JavaScript.
·3 мин чтения·23 мая 2020 г.
Javascript Jeep🚙💨
in
Как использовать History API в JavaScript
Понимание History API в JavaScript.
Чтение: 6 мин·19 мая 2020 г.
Javascript Jeep🚙💨
в
Перенаправление, обновление и доступ к URL-адресу текущей страницы в JavaScript
Объект местоположения JavaScript
·Чтение 3 мин· 11 декабря 2019 г.
Просмотреть все на Javascript Jeep🚙💨
Рекомендовано на Medium
The PyCoach
в
Вы используете ChatGPT неправильно! Вот как опередить 99% пользователей ChatGPT
Освойте ChatGPT, изучив технологию быстрой разработки.
·7 мин чтения·17 марта
Хафик Икмал
в
Проектирование базы данных для обработки миллионов данных становится все более очевидным, что…
·14 мин чтения·26 февраля
Ибрагим Ахмед
в
Как я оптимизировал конечную точку API, чтобы сделать ее в 10 раз быстрее из наиболее важные факторы, которые следует учитывать.
Если ваше приложение работает медленно…·Чтение через 3 мин.·11 января
Александр Нгуен
в
Почему я постоянно терплю неудачу с кандидатами во время собеседований в Google…
Они не соответствуют планке.
·4 минуты чтения·13 апреля
Felix Otoo
в
Боковая функция в PostgreSQL
Появилась начиная с PostgreSQL 9.3
·3 минуты чтения·1 ноября 2022 г.
Алейд тер Вил
в
10 вещей, которые можно сделать вечером вместо того, чтобы смотреть Netflix
Привычки без устройств для повышения продуктивности и счастья.
·5 мин чтения·15 февраля 2022 г.
См. дополнительные рекомендации
Статус
Карьера
Преобразование текста в речь
Безболезненно ДОБАВИТЬ КОЛОННУ с ненулевыми значениями по умолчанию 90 001
Fast ALTER TABLE ADD COLUMN с ненулевым значением по умолчанию.
28 марта Эндрю Данстан зафиксировал следующий патч:
commit 16828d5c0273b4fe5f10f42588005f16b415b2d8
Автор: Andrew Dunstan <[email protected]>
Дата: среда, 28 марта, 10:43:52 2018 +1030
Fast ALTER T ABLE ADD COLUMN со значением по умолчанию, отличным от NULL
В настоящее время добавляется столбец в таблица со значением по умолчанию, отличным от NULL, приводит к
перезаписи таблицы. Для больших таблиц это может быть как дорого, так и
разрушительно. Этот патч устраняет необходимость перезаписи, если значение по умолчанию
не является изменчивым. Выражение по умолчанию оценивается как
время ALTER TABLE и результат сохраняются в новом столбце
(attmissingval) в pg_attribute, а для нового столбца (atthasmissing) устанавливается значение
как true. Любая существующая строка при извлечении будет снабжена атрибутом
attmissingval. Новые строки будут иметь предоставленное значение или значение по умолчанию и
, поэтому им никогда не потребуется атрибут attmissingval.
Каждый раз, когда таблица перезаписывается, все настройки atthasmissing и attmissingval
для атрибутов очищаются, так как они больше не нужны.
Наиболее заметным изменением кода по сравнению с этим является heap_attisnull, который
получает третий аргумент TupleDesc, позволяя обнаруживать отсутствующее значение
, если оно есть. Во многих случаях, когда известно, что
не будет никакого (например, отношения каталога), для этого аргумента
может быть передано значение NULL.
Andrew Dunstan, сильно измененный из оригинального патча от Serge
Rielau.
Отзыв Тома Лейна, Андреса Фройнда, Томаса Вондра и Дэвида Роули.
Обсуждение: https://postgr.es/m/[email protected]
Не секрет, что жизненный цикл базы данных включает в себя миграции — задачи, которые изменяют схему базы данных, такие как добавление новых, изменение или удаление существующих таблиц, индексов, столбцов и так далее. Некоторые из этих миграций иногда довольно болезненны, например, добавление нового столбца с автоматическим значением по умолчанию — «ALTER TABLE… ADD COLUMN
# выберите count(*),pg_relation_filenode('products'),pg_size_pretty(pg_relation_size('products')) from products;
количество | pg_relation_filenode | pg_size_pretty -------------------------+-------------------------------------+---------------- 60000001 | 42070 | 5322 МБ
# продукты изменения таблицы добавить полезные данные столбца int not null default 0;
ALTER TABLE Time: 242439,750 ms (04:02,440) # select count(*),pg_relation_filenode('products'),pg_size_pretty(pg_relation_size('products')) from products;
количество | pg_relation_filenode | pg_size_pretty -------------------------+-------------------------------------+---------------- 60000001 | 42080 | 5786 МБ
В этом примере был добавлен новый целочисленный столбец со значением по умолчанию. Как видите, индекс файла был изменен, а это значит, что в результате таблица полностью переписана. Но обратите внимание на тайминг команды — 4 минуты, это время перезаписи таблицы. В течение этого времени доступ к таблице полностью блокируется, поэтому любой запрос застрянет, пытаясь получить доступ к таблице. Очевидно, что во многих случаях это неприемлемо.
Чтобы избежать длительного блокирования, администраторы баз данных часто разбивают такие миграции на три этапа. Во-первых, добавление нового столбца без значения ПО УМОЛЧАНИЮ — это недорогая операция. Во-вторых, установка значения по умолчанию, которое будет использоваться для новых вставленных или обновленных строк. В-третьих, обновление существующих строк и установка значения по умолчанию в добавленный столбец. Важно отметить, что все эти шаги не блокируют доступ к таблице, хотя, конечно, они занимают больше времени, чем один тяжелый ALTER.
Основная цель нового патча — облегчить жизнь администраторам баз данных и максимально облегчить добавление нового столбца со значениями по умолчанию. Давайте посмотрим на ту же миграцию в Postgres после патча:
# select count(*),pg_relation_filenode('products'),pg_size_pretty(pg_relation_size('products')) from products;
количество | pg_relation_filenode | pg_size_pretty -------------------------+-------------------------------------+---------------- 60000001 | 16394 | 5322 МБ
# продукты изменения таблицы добавить полезные данные столбца int not null default 0;
ALTER TABLE
Время: 65 898 мс
# select count(*),pg_relation_filenode('products'),pg_size_pretty(pg_relation_size('products')) from products;
количество | pg_relation_filenode | pg_size_pretty -------------------------+-------------------------------------+---------------- 60000001 | 16394 | 5322 МБ
Команда ALTER выполняется за 65 миллисекунд — молниеносно по сравнению с предыдущим примером.
Спасибо Эндрю Данстану и всем, кто принимал участие в написании этого патча.