|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||||||
Ключ UNIQUE. Добавление элемента04.01.2023, 19:52. Показов 538. Ответов 5
Всем привет.
Есть поле, помеченное ключом UNIQUE. При попытке добавить запись со значение поля которое уже есть в базе, я получаю следующую отладочную информацию.
Собственно вопрос: это нормальное поведение? Т.е. даже можно спросить шире, это просто защита базы от добавления "дубликата", но подобные ситуации должен отслеживать разработчик в коде при добавлении? Например сначала убедиться, что записи с таким полем нет, а уже после этого добавлять? Или все же эта ситуация не должна останавливать работу программы? Работаю через PonyORM. В данный момент "тренируюсь" с SQLite, но в принципе так же интересно как это реализовано в других БД.
0
|
||||||
| 04.01.2023, 19:52 | |
|
Ответы с готовыми решениями:
5
Односвязный список: добавление элемента спереди и добавление/удаление после каждого четного
|
|
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|||
| 04.01.2023, 21:00 | |||
|
Добавлено через 4 минуты В вашем случае вы либо проеряете есть ли такая запись, либо просто отлавливаете ошибки В любом случае, как по мне всё изначально не верно
1
|
|||
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
|||
| 04.01.2023, 22:29 [ТС] | |||
|
brian778, Спасибо за ответ.
Пример вполне конкретный. Уточню еще раз. Возьмем самый примитивный вариант. Одна таблица. Два поля, id = PrimaryKey, name = str (unique = True). Никаких дополнительных связей. Ничего лишнего. Операция: добавление записи с полем name, значение которого уже есть БД.
0
|
|||
|
Автоматизируй это!
|
|
| 04.01.2023, 22:32 | |
Сообщение было отмечено anton78spb как решение
Решение
anton78spb, но ведь если это делать в сиквеле через консоль или гуи-клиент то тоже покажет ошибку, почему удивило что питон бросает исключение? конечно ты должен обработать все -нет бд, не тот пароль, отпала сетка, не верный запрос и так далее.
1
|
|
|
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|
| 04.01.2023, 22:36 | |
|
Я боюсь тут чтото сказать, так как более квалифицированные люди скажут что я не то сморозил
Но по моему мнению вообще не стоит ставить unique для varchar, а есои уж делаете, то перед добавлением проверяйте есть ли такое
1
|
|
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
|||||
| 04.01.2023, 23:09 [ТС] | |||||
|
Welemir1, brian778, Я думал, что устанавливая ключ UNIQUE, мы просто автоматизируем проверку при добавлении на наличие дубликата. И в случае если такое значение уже есть, то просто получим ответ об этом, а не ошибку. А это по сути защита самой БД, на случай если разработчик не сделал проверку самостоятельно.
0
|
|||||
| 04.01.2023, 23:09 | |
|
Помогаю со студенческими работами здесь
6
Добавление записи в таблицу имеющую внешний ключ
Добавление записи в базу, если в полях автоинкремент и первичный ключ Двусвязный список. Реализовать перемещение по списку, добавление элемента и удаление элемента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|