|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть таблица Object(id int, name varchar(50)) Как избежать дублирования данных в поле name? Если поставить уникальность на поле name, то все равно можно записать: стол Стол и для файрберда это будут разные не уникальные значения. Я добавляю в таблицу поле upp_name и в триггерах, на добавление и изменение заполняю это значение new.upp_name = upper(new.name). Верно ли это или есть другой путь? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 15:17 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey Poryadin, ставь нечувствительный коллейт, если возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 15:22 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey PoryadinВерно ли это или есть другой путь? Case-insencitive collation спасёт ОРД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 15:23 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey Poryadin, никак. контроль качества данных - это по большей части не вопрос СУБД. Например, "стол" и "Стол" можно исключить и тиггером, и коллэйтом. А вот "стoл" исключить получится разрешением вводить только русские буквы (тут буква "o" - латинская). Еще вводят 0 вместо нуля, переставляют слова в наименовании ("стул деревянный" и "деревянный стул"), и так далее. В учетных системах это известный геморрой, и решение этого вопроса прямого отношения к Firebird не имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 15:50 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 17:17 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
"Я добавляю в таблицу поле upp_name и в триггерах, на добавление и изменение заполняю это значение new.upp_name = upper(new.name)"......... Тогда проще создать уникальный индекс по выражению Upper(name) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 18:03 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
shaposh, IBExpert говорит, что индекс Код: sql 1. 2. 3.
создать нельзя, т.к. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 08:57 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
а гугл ничего не говорит ? ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:14 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey Poryadin, индекс можно, констрейн нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2015, 13:28 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Код: sql 1.
Так сработало, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 09:04 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
А почему это не констрейнт? Если по факту - это он самый? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 09:08 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey Poryadin, про скорость это твои фантазии. А не работает потому что поля в таблице такого нету. Ограничение уникальности может использоваться как ключ родительской таблицы в ограничении Foreign Key. Для выражения такую связь сделать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 09:22 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Симонов Дениспро скорость это твои фантазии. А не работает потому что поля в таблице такого нету. Это кому и про что? Я вроде про скорость не фантазировал и с именем поля не ошибся. За уточнение, что ограничение на уникальность может участвовать в Foreign Key, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 09:44 |
|
Как избежать дублирования?
|
|||
---|---|---|---|
#18+
Alexey Poryadin, извини. По невнимательности прочитал "он самый быстрый". Сплю ещё видимо. Уникальный индекс <> Ограничению уникальности. Хотя уникальный индекс используется для обеспечения ограничения уникальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2015, 09:49 |
|
|
start [/forum/topic.php?fid=40&msg=39075671&tid=1562589]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 163ms |
0 / 0 |