|
|
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Я создал уникальный индекс, из следующих полей: Код: plaintext 1. 2. 3. 4. Я создал две строки и не получил сообщения о нарушении уникальности. Как видите, одно поле содержат значения Null. Код: plaintext 1. 2. А если я делаю так, Код: plaintext 1. 2. То получаю сообщение о нарушении уникальности, что мне и нужно. Что нужно сделать, чтобы обеспечить уникальность записей при отсутствии значения (Значение равно Null)в индексируемом поле? Или это невозможно в Access XP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 17:33 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Кажись это невозможно не в аксесе хп, а в принципе (в классической теории реляционных баз данных) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 17:39 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Вот что написано в справке Access XP ( красным цветом я выделил то что не совсем понятно) =============================================== Свойство «Пропуск пустых полей» (IgnoreNulls) Свойство Пропуск пустых полей (IgnoreNulls) определяет, следует ли включать в индекс поля, содержащие пустые (Null) значения в индексированных полях. Значение Свойство Пропуск пустых полей (IgnoreNulls) может иметь следующие значения. Значение Microsoft Visual Basic Описание Да True Записи, содержащие пустые (Null) значения в индексированных полях, не включаются в индекс. Нет False (Значение по умолчанию.) Записи, содержащие пустые (Null) значения в индексированных полях, включаются в индекс. Значение данного свойства задается в окне индексов таблицы в режиме конструктора или в программе Microsoft Visual Basic. Доступ к свойству индекса Пропуск пустых полей (IgnoreNulls) в программах Microsoft Visual Basic обеспечивает свойство IgnoreNulls объектов доступа к данным. Заметки Создание индекса для поля ускоряет выполнение поиска индексированных записей в этом поле таблицы. Если ожидается, что индексированное поле будет содержать много пустых (Null) значений, следует задать значение «Да» для свойства индекса Пропуск пустых полей (IgnoreNulls), тем самым уменьшив объем индекса. =============================================== Как это понимать в классической теории реляционных баз данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 17:56 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
И еще. Когда я портирую таблицы в MS SQL 2000, то получаю сообщение о дублировании записей. Получается что в MS SQL 2000 поля, содержащие Null успешно индексируются? Замечу, что я не знаток MS SQL 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 17:59 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Пропуск пустых полей - это пропуск пустых полей. А уникальность - это уникальность. Не надо путать широкое с зеленым. Пропуск пустых полей (да/нет) - просто указывает Jet'у, включать ли записи с Null в индекс (для ускорения выборки с условием Is Null), или нет (для уменьшения размера индекса). Уникальность для поля, содержащего Null - как ты себе это представляешь? Если a = Null, b = Null, то (a=b)=Null, а никак не True. Поэтому никакие условия на уникальность не нарушаются. Нет у тебя в таблице записей, в которых индексированные поля совпадали бы с другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 18:09 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно, но верю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 18:16 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
А тогда такой вопрос: Если я не могу иметь уникальный индекс, то я осуществляю дополнительную проверку. Сейчас в событии формы BeforeUpdate я проверяю запросом наличие записи в базе данных. Если такой записи нет, то я вношу ее. Поскольку программа работает в сети, то все таки, как я понимаю, эти действия лучше делать в виде одной транзакции (проверка наличия записи, если нет то вставка записи)? И соответственно не совсем правильно работать только в событии BeforeUpdate , не используя при этом транзакцию добавления записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 18:25 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Короче, надо поменять IgnoreNulls с да на нет. Почему это нельзя считать ответом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:01 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
>Короче, надо поменять IgnoreNulls с да на нет. Почему это нельзя считать >ответом? Я задал значение IgnoreNulls как "нет". Но это не помогает. Получается что Null не используется в индексе и прав Лох Позорный (спасибо ему за чувство юмора:)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:07 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Может, надо создать таблицу заново? Или всю базу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:15 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Создал базу, затем таблицу, затем индекс. Не помогает. Значить не индексируются поля с Null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:24 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Может, это какой-то глобальный параметр в опциях... Не-не, это я сам с собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:34 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Если в таблице уникальный индекс из полей поле1, поле2, поле3, то при вставке новой записи ( ЗаписьНовая ) должно ругаться на повторяющиеся значения тогда и только тогда, когда существует такая запись ( ЗаписьСтарая ), что ЗаписьНовая.поле1=ЗаписьСтарая.поле1 И ЗаписьНовая.поле2=ЗаписьСтарая.поле2 И ЗаписьНовая.поле3=ЗаписьСтарая.поле3 Очевидно, что если хотя бы одно из полей в любой записи (новой или старой) есть Null, то условие не будет истинным ни при каких значениях остальных полей. Поэтому ругани на повторяющиеся значения быть и не должно. Все. Ушел пить вотку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:43 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Лох, я не знаю, застал ли я тебя до пития или после, но по-твоему получается, что параметр IgnoreNulls никогда ни на что не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:46 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Повторяю, он влияет только на включение ссылок на записи (с нулом) в индекс. Или включаются (тогда быстрее ищет нуловые значения), или нет (тогда ищет медленнее, но индекс меньше места занимает). К проверке уникальности это не имеет никакого отношения. Кстати, чего вы привязались к составному индексу? Сделайте обычный индекс (из одного поля), уникальный, но не обязательный. И добавляйте туда сколько хотите записей с пустым значением. Это так, для примера. Все. Ой мароз, мароооз..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2003, 19:50 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Не марось миняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:26 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Лох (слушай, а как тебя зовут?), это кончится тем, что я опять пришлю тебе ссылку на музыкальный форум... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:33 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Сан Саныч миня завут Ниии маррроооосьь миняяяя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:39 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
>Ниии маррроооосьь миняяяя Ниии маррроооосьь миняяяя //подпевает вторым голосом... мля... подскажите хороший антидеприсант... а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:40 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
2 Лох: Так это чего, мы с тобой рифмуемся??? 2 Нуф: А тебя как зовут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:43 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Харощий антидепресант - вотка. Толька сушняк вызывает (как и любой антидепресант) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:47 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Саныч, если не лениво, глянь мой имэйл - там и имя, и особая отметка через всю шею... Антидеприсант не подскажешь? Шобы без превыкания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:48 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Не, Лох, водка - плохо... Тааааакое превыкание вызывает! Кроме того, водка во время дипрессии - первый шаг к суициду, имхо... Таблетки есть какие-то... //вот автор топика обрадуется нашему задушевному разговору "на троих" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:51 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
ВАЙ НУФ в гости приезжай да? Антидепресант - не самое главное в этой жизни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:51 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Лох... Район страны (мира) та хоть какой? А то ты вообще "мембер" какой-та беспреютный... :) Луче ты приезжай - я дачу почти достроил, там кайф... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:53 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
> глянь мой имэйл - там и имя, и особая отметка через всю шею... Имя вижу. Особую отметку - э... Ну ладно, я только имя хотел. > Антидеприсант не подскажешь? Шобы без превыкания? Я как человек непьющий (о, сейчас бить будут) могу предложить только одно - заняться каким-нибудь отвлекающим делом. Типа, выспаться. Или, наоборот, в форуме посидеть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:55 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Не, к суицыду не бывает первого шага. Бывает последний. Ты пиши если что. Или приезжай к нам в маскву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:55 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Кста, Саныч... Это... ФАК уже ушел и дистурбить Админа, типа, поменяйте вот на эту версию - не красиво, имхо... Но знаешь, там кнопка есть "Добавить в уже существующий" - можно добавить позже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:55 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
> Кста, Саныч... Вовочка меня зовут... Ладно, с факом разберемся как-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 00:57 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Саныч.. там, если помню, написано ivanscar... можно разложить попробовать разложить на равные части: ivan + scar... Кажется ты мне про славарики тип скидывал? :) Лох, это, извини кнешна, но Москва мне не очень... Хороший город, и все такое, но... у меня год назад друг уехал в москву (программер), а пол-года назад еще один друг (банковский работник)... Как они изменились млин :((( Москва людей (приезжих во всяком случае) меняет до неузноваемости, имхо, не в лучшую сторону... На счет последнего шага это прав... Шаг - и Нирвана... прям как на даче - кайф... Кста, Лох, с дачи обалденный вид и на Бештау и на Машук... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:00 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Словарики не помню. Имя вычленил. Вторая половина - могу только гадать. Если это фамилия, то она написана не на русском и не на иврите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:04 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Володь, ну млин ты уже спишь (кста, скока у вас там время сейчас?). Я ж написал: мой имэйл - там и имя, и особая отметка через всю шею ... scar(англ. "шрам"). слюшайте... Чё нам cab скажет? //открыл второе окно с чатом - вспомню молодость... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:08 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
2 Нуф-Нуф Вай да прастит миня автор топика за офтопик Я собираюсь во второй половине августа куда нибудь на кавказ думаю пересечемся З.Ы. Масква не сахар. Каждый становится таким говном, каким он и хочет быть (безотносительно к твоим друзям, а может и относительно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:09 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
:^))) Блин. У меня с английским хуже, чем с русским и ивритом. Позор мне. У нас на один час меньше. Вот сейчас 00:13. А завтра рабочий день... (То есть разница у нас не только на один час, но и на одни сутки.) Я ушел спать. Было приятно познакомиться. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:12 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Лох, надумаешь на кавказ - обязательно пересечемся! А говновые люди везде есть... просто москва меняет... Лана... это... Не будем мусорить? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:13 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Спокойной ночи Good night (во чего вспомнил) לילה טוב ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:14 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Санычь... В смысле, Володь, мне тоже... Ночи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 01:14 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
А теперь по топику. Лох оказался прав (впрочем, как всегда, когда он не пьет воТку). Нужный эффект недостижим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 11:27 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Что нужно читать, чтобы быть таким умным, как Лох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 11:32 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Что нужно читать или что нужно пить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 11:34 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Ну и читать и пить. Только что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 12:36 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
А вот в такой постановке (более корректной, чем прежде) можно переадресовать вопрос Лоху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 12:42 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Да не читать надо, а делать. Я вот в детстве читал Три мушкетера, ну и что, стал я им? А ежлиб записался бы в кружок по фихтованию, сшил бы себе кофточку с крестиками, лошадку ежлиб прикупил Простое прочтение чего-бы та нибыло нифига не даст, если это все самостоятельно не попробывать... Ну то есть даст, но очень быстро все это забудется, если не попробовать... //тока проснулся... может че и не так сказал... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 12:46 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Поддерживаю кабана. Я первую книжку по аксесу (Гетц) купил и начал читать около месяца назад, когда решил что это мне уже не повредит . Так что читать надо хелп, пить надо... Во! пить нада меньше! Нада меньше пить! (но иногда пить надо больше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 14:12 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
Все таки я построил нужный мне индекс, таким образом: Я добавил в таблицу еще два поля: Код: plaintext 1. И включил эти поля в состав уникального индекса: Код: plaintext 1. 2. 3. 4. В эти новые поля соответственно копируются, отличные от Null, значения из ParentId (Тип – Long, допускается Null) GeneralId (Тип – Long, допускается Null) Происходит небольшое дублирование информации, а что делать. Зато я имею ссылочную целостность в полях: ParentId (Тип – Long, допускается Null) GeneralId (Тип – Long, допускается Null) что очень важно и одновременно уникальную индексацию. Теперь Access не допустит появления одинаковых записей, подобных этим: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:56 |
|
||
|
Как сделать уникальный индекс при наличии Null
|
|||
|---|---|---|---|
|
#18+
> Я вот в детстве читал Три мушкетера, ну и что, стал я им? А разве Нуф-Нуф - это не один из трех мушкетеров? Вроде ведь один из трех... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2003, 00:21 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1680835]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 387ms |

| 0 / 0 |
