1058

Когда выполнил SQL-запрос⁠⁠

Когда выполнил SQL-запрос

IT-юмор

7.6K постов53.3K подписчиков

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
167
Можно, а зачем?
Автор поста оценил этот комментарий

На продакшн БД

Иллюстрация к комментарию
раскрыть ветку (56)
31
DELETED
Автор поста оценил этот комментарий

УУуУууууууу съука! Я так однажды убил у пользователей даты их подписок на сервис(выделил update без where  и запустил) хорошо бекап был 🙈

раскрыть ветку (36)
43
Автор поста оценил этот комментарий

Поэтому всегда апдейты пишу в роллбэк транзакции. И смотрю, сколько обновленных строк.

раскрыть ветку (12)
22
Автор поста оценил этот комментарий
Я обычно сначала select делаю нужными условиями и полями
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Пофиг, у меня мышка дернулась и бабах. Номера коррсчетов у всех контрагентов сравнялись)))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну тогда от кривых рук ничего не защитит

4
Автор поста оценил этот комментарий
Это да, но бывает, что случайно выделишь часть запроса и F5 :)
раскрыть ветку (4)
6
Clatto Verata Nikto
Автор поста оценил этот комментарий

...и такой интуитивно думаешь, что где-то за секунду отработает, а тут 3..5...СТОЙ СУКА!!!

Ни один хедшот не делается с такой скоростью, как кнопка "stop" в ide :)
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Stop не гарантирует отмену
раскрыть ветку (1)
0
Clatto Verata Nikto
Автор поста оценил этот комментарий

Stop это просто кнопка. Далее всё зависит от СУБД, IDE и настройки.

0
Автор поста оценил этот комментарий

F8 же ;)

0
Автор поста оценил этот комментарий
Так, смотри тут своими заклинаниями дождь не вызови... А то дождь зимой это совсем плохо.
ещё комментарии
15
Автор поста оценил этот комментарий

жиза.

Мне нравится что в продуктах от jetBrains есть защита от этого. Он потребует подтверждения, если напишешь UPDATE без where.

раскрыть ветку (5)
28
Немножко лучше тебя
Автор поста оценил этот комментарий
А ты берёшь и подтверждаешь, ведь думаешь, что это локальная или тестовая база...
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Скорее НЕ думаешь

3
Автор поста оценил этот комментарий

В DBeaver тоже такое есть

0
Автор поста оценил этот комментарий
Двухфазные коммиты наше все
0
Автор поста оценил этот комментарий
Where 1
4
Автор поста оценил этот комментарий

У меня для этого тестовая БД крутится с теми-же настройками что и рабочая и с каким-то количеством пользователей. Все апдейты СНАЧАЛА на тестовую, там покрутить со всех сторон, обнюхать, как порядочная гончая, и только ПОТОМ, если конечно ничего не отвалилось - в рабочую, с которой само собой перед этим был сделан бекап.

раскрыть ветку (1)
Автор поста оценил этот комментарий

А мне интересно, зачем вообще может понадобиться делать апдейты вручную.


Они же должны быть только в рамках бизнес логики.

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

2
Автор поста оценил этот комментарий

у нас вообще продакшен закрыт для всех.

хочешь что то сделать, делай на предпрод серваках, они +- копия прода

или разворачивай в дев окружении там тестируй , а далее через деплой только уходит на прод, и то там вертануть можно проще. если что то пошло не так.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Тестовый сервер и табы тоже есть, но дело то не в этом. А в не внимательном выделении запроса

0
Автор поста оценил этот комментарий
А разве бекап делается после каждой подписки ? Так то между созданикм бекапа и твоим фейлом будет промежуток, когда пользователь мог купить подвиску. Откат бекапом же нивелирует его подписку, а покупка то была совершена. Хотя уверен что лог транзакций с id пользователями хранится ещё, где-то и по сути восстановить можно.
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Обновлённых записей было не так много, добил вручную

0
Автор поста оценил этот комментарий

А как происходит процедура бэкапа?

Есть возможность бэкапить конкретную таблицу? Точнее ресторить уже.

Или поднимаете рядом бэкап, а из него как то данные копируете в актуальную?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

в ms sql например, дамп базы можно задавать через любой промежуток вермени, ну и ресторить уже весь дамп а из него вытаскивать нужную таблу. если нужно что то быстро перелить то можно создать соседнюю таблицу и просто залить туда текущую инфу, и обращаться к ней если накосячил

Автор поста оценил этот комментарий

А почему транзакцию для апдейтов не юзаете?

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

Транзакционность подразумевает что запрос либо выполнится полностью, либо так-же полностью не выполнится. Откат после корректного выполнения это уже отдельная фича.

раскрыть ветку (5)
5
Автор поста оценил этот комментарий
Rollback отдельная фича????
раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Если упростить, то мы имеем 3 вида rollback:

1. Откат изменений в случае если транзакция не смогла завершиться.

2. Откат изменений даже если транзакция завершена.

3. Каскадный откат нескольких транзакций.


Обеспечивая хранение журнала транзакций только для незавершённых транзакций система не перестаёт быть транзакционной, но Rollback для уже выполненных изменений тут невозможен так-же как и каскадные откаты.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Если можно, приведите примеры rollback номера два и три.
Спасибо
Автор поста оценил этот комментарий

Имелся ввиду откат после коммита.

раскрыть ветку (1)
1
Clatto Verata Nikto
Автор поста оценил этот комментарий

Имеется ввиду, что автокоммит можно отключить, сделать запрос, проверить, и только потом коммит.

Всё в рамках одной транзакции.
0
DELETED
Автор поста оценил этот комментарий

Как научился, так и привык делать на msql. Не профи, но умею х)

Автор поста оценил этот комментарий

Ну я не делаю, потому что работаю на базе для разработки и мне её можно убивать. С просто update delete у меня обычно проблем нет. А если  сложный скрипт, то мне надо проверить, правильно ли он сработал. Может получиться, что 300000 строк  верно изменено.

Хотя мысли есть все же использовать транзакцию.

22
Угрюмый душнила
Автор поста оценил этот комментарий

Сука.

Я словил флешбэк вьетнамский.

В 2002-м году делал свой первый проект автоматизации торговой точки. Ещё в институте тогда учился на очной.

Софтину писал на mssql + delphi.

Приехал с учебы сделать фикс в хранимой процедуре (сбросили на пейджер, мол баги есть, звякни). Ну разобрался быстро, сейчас быстро на проде всё поправлю, что может пойти не так?

Как сейчас помню, короткий update таблицы товарных движений в query analyser-е, выполнить…. иии… вот такая примерно мессага (ток строк поменьше, полгода проработали). Забыл where, капец. Бежать в тайгу?

Хорошо, что был вечерний автобэкап, движения за день восстановил по чекам.

Иллюстрация к комментарию
3
Автор поста оценил этот комментарий

Когда постоянно работаешь на продовской БД, страх накосячить постепенно исчезает) И осознавать это стрёмно, особено если работаешь с какойнить БД федерального назначения)

6
Автор поста оценил этот комментарий

У нас на работе есть метод API delete-users  для зачистки


так вот если в него передать параметр указывающий на конкретного пользователя, то удалится только он


а если параметры пропустить, то удалятся абсолютно все пользователи, а их миллионы. Их удаление вызовет целую цепочку действий в биллинге, восстанавливать замучаешься


каждый раз очкую случайно в postman стереть параметр в GET и снести всех)) говорят такое уже разок было

раскрыть ветку (15)
13
Автор поста оценил этот комментарий

зачем такой плохой метод, да?

раскрыть ветку (7)
4
Автор поста оценил этот комментарий

дух авантюризма в нас живёт)))

раскрыть ветку (4)
7
DELETED
Автор поста оценил этот комментарий

Дух долбоебизма, скорее

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

а чего меня минусовать? я согласен..но я и не разработчик этой херни))) я работаю в эксплуатации

раскрыть ветку (2)
0
DELETED
Автор поста оценил этот комментарий

Я тебя не минусовал, у тебя вообще рейтинг 0.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Он не курит, просто с пацанами рядом стоял.
2
Clatto Verata Nikto
Автор поста оценил этот комментарий

Ну вообще стандартная практика внутри хранимых функций если параметр is null, то применяется ко всем записям. Так удобнее строить логику внутри системы.


Но БЛЯ НАРУЖУ тащить это не вариант. Минимальная обёртка с проверкой условия делается за минуту. Тем более в такой "интересной" функции.

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Вот мне наши админы нравятся тем, что каждому разрабу дают отдельного пользователя и все действия логируются. Плюс права даются по тикету и ситуации, так что сломать что-то и не спалиться невозможно.

10
Автор поста оценил этот комментарий

Интересные у вас GET'ы. По хорошему они не должны никаких изменений вносить, а только возвращать данные.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ну смотри, get означает "получить", да?


Если у тебя было яблоко, а я "получил" у тебя яблоко, то у тебя теперь 0 яблок, да?


Вот и тут тоже самое.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Ты в http не специалист, да?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да нет, просто пошутил.


А вообще с трудом представляю себе строчку в резюме "http header specialist"

1
Автор поста оценил этот комментарий

Главное чтобы он ещё и снаружи не был доступен))

0
Автор поста оценил этот комментарий

А авторизация там есть? По логам поймут, кто всë удалил?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

не поймут, учётка админская общая на всю группу эксплуатации)))

0
Автор поста оценил этот комментарий

Без бекапа

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества