|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
Как обработать исключение Duplicate entry(MySql)19.07.2023, 16:33. Показов 3750. Ответов 69
Метки нет (Все метки)
Есть у меня функция для sql запроса в базу, например такая:
Вопрос в том можно ли как-то обработать это исключение без дополнительного проверочного запроса?
0
|
|||||||||||
| 19.07.2023, 16:33 | |
|
Ответы с готовыми решениями:
69
Как в EF пропускать исключения дубликатов MySqlException: Duplicate entry '1-4' for key 'PRIMARY'
MySQL Error! Duplicate entry '1' for key 'user_id_2' |
|
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,721
|
|
| 20.07.2023, 11:31 | |
|
Andrey-MSK, вот тут точно не надо исключение кидать, если дубликат есть. Можно просто MessageBox показать. Это же не исключительная ситуация) Вполне себе ожидаемая.
И в catch не надо Rollback делать. Можно просто диспоузить транзакцию без Complete.
0
|
|
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 20.07.2023, 11:32 [ТС] | |
|
Usaga, Andrey-MSK, таких хитростей я не знал, спасибо, учту
0
|
|
|
|
||||||||||||
| 20.07.2023, 11:35 | ||||||||||||
try .. catch используется, кинул
а в catch
Ну и метод завершится, если Вася уже есть...
1
|
||||||||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 20.07.2023, 11:38 [ТС] | |
|
Usaga, только стоп, а как мне глобальный перехват исключений поможет в решении проблемы остановки метода? текст то я пользователю выдам, но метод в котором вызывался запрос продолжит работу после исключения и все
0
|
|
|
|
|
| 20.07.2023, 11:39 | |
|
1
|
|
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
||||||
| 20.07.2023, 13:22 [ТС] | ||||||
|
Andrey-MSK, посмотрел транзакции и throw написал что-то такое:
0
|
||||||
|
|
||||||
| 20.07.2023, 13:59 | ||||||
|
firnen_dragon, Пробуйте
1
|
||||||
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
|
||
| 20.07.2023, 14:02 | ||
|
2. У вас подключение 'con' зачем-то закрывается до try-блока, а внутри try-блока используется 'command2', которому нужно это подключение.
1
|
||
|
|
||||||
| 20.07.2023, 14:06 | ||||||
|
firnen_dragon, И если не используете
using, то finally нужно записать вот так
1
|
||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 20.07.2023, 14:22 [ТС] | |
|
kotelok,Да это я когда писал пост, исправил у себя в коде, а в посте забыл, это очепятка просто(это я про con.Close).
Andrey-MSK, return -1 мне и самому не нравится, но мне нужно вернуть id пслденнего добавленного документа, а,если есть try-catch, то приходиться еще и -1 возвращать иначе ошибка синтаксиса(не все ветви кода возвращают значение). вашу переделку я попробовал, ну и итог тот же, честно говоря не очень понимаю как эта стратегия должна поспособствовать прерыванию внешнего метода.
0
|
|
|
|
||
| 20.07.2023, 14:28 | ||
catch по другому пишется... Вот пример тут есть с двумя методами - Какие есть практики по обработке exceptionИ это, con.Open(); поставьте перед MySqlTransaction transaction = con.BeginTransaction(IsolationLevel.ReadCommitted);
1
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
| 20.07.2023, 15:01 [ТС] | |||||||||||
|
Andrey-MSK, Ооо, это то что нужно, спасибо за терпение, далеко не всегда въезжаю быстро, в итоге сделал так:
0
|
|||||||||||
|
|
||
| 20.07.2023, 15:01 | ||
int, но в catch ничего нет, кроме ошибки...
0
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
||||||||||||
| 20.07.2023, 15:04 [ТС] | ||||||||||||
|
а стоп тогда мне получается это и не нужно:
Добавлено через 1 минуту
0
|
||||||||||||
|
|
||
| 20.07.2023, 15:04 | ||
|
1
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
||||||
| 20.07.2023, 16:07 [ТС] | ||||||
|
Andrey-MSK, У меня еще вопрос появился, а могу ли я использовать тарнзакцию, когда у меня один запрос использует результаты второго?
Пример:
0
|
||||||
|
|
||
| 20.07.2023, 16:14 | ||
MAX() возвращает максимальный элемент, а что в этом случае он вернёт на текстовом поле?Транзакции используются для вставки, удаления и модификации множества данных. Для одной записи, INSERT INTO () VALUES (), они не нужны, только если есть зависимость от текущего состояния таблицы...
1
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
||
| 20.07.2023, 16:30 [ТС] | ||
|
Суть запроса: Во-первых тут нужно понимать, что name содержит только числа(int) и по сути name - означает номер контейнера, но почему же тогда не использовать Id просто? Потому что контенер может дублироваться и прибывать в разных состояниях(например активный/не активный), таким образом выходит что контенеров может быть 1 , 2, 3.... и более и name у них у всех одно и тоже, а вот Id у них у всех разные, ну по этому я сначала запрашиваю последнее имя получаю 325 например прибавляю 1 и собственно создаю контейнер c новым именем, а id само инкрементируется Добавлено через 1 минуту Andrey-MSK, а вот зачем я его в стринг перегонял я даже и не знааю
0
|
||
|
|
||
| 20.07.2023, 16:33 | ||
ContainerNumber например ![]() Ну тогда поможет транзакция, только чтоб блокировала запись в таблицу на время работы. А то вдруг кто-то одновременно ещё запишет контейнер с таким-же номером...
1
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||
| 20.07.2023, 17:03 [ТС] | |||||||
|
Andrey-MSK,
А вот на счет транзакции так приемлемо?:
0
|
|||||||
| 20.07.2023, 17:03 | |
|
Duplicate entry SqlExceptionHelper.logExceptions Duplicate entry Duplicate entry '28' for key 'id_u' 'Duplicate entry '0' for key 'PRIMARY'' Ошибка Duplicate entry '10' for key 1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|