Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Первичный ключ по двум полям   Найти похожие ветки 

 
Neo Trinitron ©   (2006-09-14 13:57) [0]

Доброго времени всем! Как можно в MSAccess таблице указать первичный ключ по двум и более полям? Может есть другой выход. Мне нужно чтобы значения двух или более полей не могли повторяться.


 
Sergey13 ©   (2006-09-14 14:00) [1]

1. Первичный ключ и уникальный ключ могут и не совпадать.
2. В чем проблема то?


 
ANB ©   (2006-09-14 14:26) [2]


> первичный ключ по двум и более полям

Это сделать можно, но не нужно. Для обеспечения уникальности есть уникальный индекс или уникальный ключ.


 
Val (from Kiev)   (2006-09-14 15:21) [3]

>ANB ©   (14.09.06 14:26) [2]
предположим - есть таблица-развязка отношения многие-ко-многим - всего два поля, которые по сути - ссылки, пара уникальна. на мой взгляд достаточено составного PK, т.е. все то же - "каждому овощу - свое время".


 
Desdechado ©   (2006-09-14 15:28) [4]

> пара уникальна. на мой взгляд достаточено составного PK
Не подменяй понятий. Сам сказал, что уникально. Вот и сделать нужно уникальное граничение.

автору
Не совсем ясно, что нужно. Первичный ключ тоже может быть составным ALTER TABLE XXX ADD CONSTRAINT PK_XXX PRIMARY KEY( fld1, fld2 )
Но очень не рекомнедую так делать, геморройно потом на него ссылаться. Лучше сделай суррогатный целочисленный.


 
Val (from Kiev)   (2006-09-14 15:38) [5]

>Desdechado ©   (14.09.06 15:28) [4]
подмена понятий? для чего нужен пк?


 
Neo Trinitron ©   (2006-09-14 16:44) [6]

Что мне нужно. Есть таблица деталей накладной. Одно поле - идентификатор накладной, другое - идентификатор товара. Как сделать так чтобы в одной накладной не могло быть одного и того же товара более одного раза?


 
Sergey13 ©   (2006-09-14 16:51) [7]

> [6] Neo Trinitron ©   (14.09.06 16:44)

Ну так и добавь уникальный ключ на дкумент+товар. Но это не значит, что этот ключ обязан быть первичныи (хотя может). Для ПК в товаре достаточно и просто отдельного ИД-шника - ссылаться будет проще.

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


 
Neo Trinitron ©   (2006-09-14 17:03) [8]

> Ну так и добавь уникальный ключ на дкумент+товар.

Очень стыдно, но я не знаю как это сделать в MS Access...


 
Desdechado ©   (2006-09-14 17:14) [9]

еще стыднее, что справку читать не желаешь


 
Neo Trinitron ©   (2006-09-14 17:45) [10]

Desdechado, позвольте поинтересоваться, по каким словам её искать. Unique - нету. Что ещё можно придумать?


 
ANB ©   (2006-09-14 18:28) [11]


> Neo Trinitron ©   (14.09.06 17:45) [10]

create unique index on Table1(F1, F2)


 
Desdechado ©   (2006-09-14 18:39) [12]

Neo Trinitron ©   (14.09.06 17:45) [10]
По словам из [4], заменив PRIMARY KEY на UNIQUE


 
Anatoly Podgoretsky ©   (2006-09-14 19:52) [13]

Да можно искать и по create index и потом после прочтения основной темы, при необходимости переход на подробности


 
Neo Trinitron ©   (2006-09-15 10:36) [14]

Спасибо, разобрался.

create unique index Index_name on Table1(F1, F2)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
4-1151304560
DeadMeat
2006-06-26 10:49
2006.11.12
Форматирование текста по центру в TEdit


2-1161901075
DmitrichJ
2006-10-27 02:17
2006.11.12
Взаимодействие между дочерним окнами.


15-1161809315
PRT
2006-10-26 00:48
2006.11.12
Open Source проект ...


6-1150718257
Kryakozyablik
2006-06-19 15:57
2006.11.12
Подключение интернета (ADSL)


1-1159521850
Msl
2006-09-29 13:24
2006.11.12
Обращение к переменным,объявленным в форме, из dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский