Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Первичнй ключ по двум столбцам? [D7]


Страницы:   1 2

tytus ©   (2006-08-21 14:17:00) 

Доброго дня ВСЕМ! В таблице есть столбец MID (number) и MSoftName(varchar2(10)). Нужно, чтобы записи в таб. имели вид:
MID    MSoftName
1       V-10
2       V-10
3       V-10
1       V-15
2       V-15
4       V-10
3       V-15

Подскажите как такое можно осуществить.


Sergey13   (2006-08-21 15:36:00) [21]

Кажется дошло до меня. MNN это порядковый номер MSoftName в выборке. Так что ли? А что если выборка поменяется? Перенумеровывать?


Sergey13   (2006-08-21 15:32:00) [22]

> [14] tytus   (21.08.06 15:22)

Блин! Объясни тогда почему у MID=4 MNN=1, а у MID=7 MNN=3 если MSoftName=V-15 у обоих? А у MID=2 и MID=6 MNN одинаковые, если MSoftName разные.
Либо ты не понял задания, либо одно из двух. 8-)


tytus   (2006-08-21 15:28:00) [23]

>[15]
Дак не известно, сколько будет каких модулей с конкретным по.
Вот пытаюсь написать ф-ю, но что-то ругается:
create or replace function GetMNN(MainName in varchar2(20)) return number is
 Result number;
begin
 Result=Max(select MNN from MainTable where MainName=MMODNAME order by MNN);
 return(Result);
end GetMNN;

ошибка - PLS-00103


Desdechado   (2006-08-21 15:23:00) [24]

> Чтобы каждый тип ПО для модуля имел свой порядок.
Значит, должно вводиться в том порядке, в котором этому мудрому начальству нужно. И номер им же присваиваться. И никаких автогенераций.


tytus   (2006-08-21 15:22:00) [25]

>[12]
MID    MNN    MSoftName
1       1        V-10
2       2        V-10
3       3        V-10
4       1        V-15
5       2        V-15
6       4        V-10
7       3        V-15
Я и сам не знаю нахрен это нужно, но так надо!


Sergey13   (2006-08-21 15:20:00) [26]

> [12] tytus   (21.08.06 15:15)

Ну дык объясни принцип организации порядка для модулей. Я не улавливаю пока.


tytus   (2006-08-21 15:15:00) [27]

>[11]
Вот так хочет мудрое начальство.
Чтобы каждый тип ПО для модуля имел свой порядок.


Sergey13   (2006-08-21 15:10:00) [28]

> Значение поля MNN, как я понимаю, нужно получать в функции,
> а затем функцию вызывать в вышеупомянутом тригере.

А что за MNN? Какой в ём смысл то?


tytus   (2006-08-21 15:08:00) [29]

>[9]
Извени, что не указал тип БД.
Нужна база по модулям оборудования (таблица инвентаризации).
Есть, к примеру, 10 типов модулей и к каждому модулю идет своя версия ПО (V-10, V-15 ..).
Так вот нужно иметь таблицу вида [6].
Тригер на получения след. значения первичного ключа для поля MID уже есть. Значение поля MNN, как я понимаю, нужно получать в функции, а затем функцию вызывать в вышеупомянутом тригере.


Sergey13   (2006-08-21 14:58:00) [30]

> [8] tytus   (21.08.06 14:55)

Таки это Оракл. И 10 постов не прошло как выяснили это (хоть и не сказал ты, но я догадался). 8-)
Теперь обясняй, что надо и что не получается.


tytus   (2006-08-21 14:55:00) [31]

>[7]
select t_seq.nextval into :New.MID from Dual;


Sergey13   (2006-08-21 14:46:00) [32]

> А как генерить значения поля MNN??

это волшебные слова надо знать. Начинаются они с имени сервера, а заканчиваются к концу рабочего дня.

> Их нужно получать... не знаю как.
А на хрена тогда ввел? Шоб было?


tytus   (2006-08-21 14:40:00) [33]

>All
Сделал первичный ключ по полю MID. Добавил поле MNN. Нужно след.:
MID    MNN    MSoftName
1       1        V-10
2       2        V-10
3       3        V-10
4       1        V-15
5       2        V-15
6       4        V-10
7       3        V-15

Как сие сделать? Значения поля MNN вводится пользователем не будут. Их нужно получать... не знаю как. Вот для MID создал тригер Before Insert. А как генерить значения поля MNN??


Sergey13   (2006-08-21 14:30:00) [34]

> [2] tytus   (21.08.06 14:23)

> а значения MID - по порядку:1,2,3..7

Так какой порядок задал - такой и получаешь. Если не какой не задал - сервер (или что там у тебя) сам решает что за чем.
Порядок сортировки никакого отношения к первичным ключам не имеет.


evvcom   (2006-08-21 14:24:00) [35]

> [2] tytus   (21.08.06 14:23)
> а значения MID - по порядку:1,2,3..7

Ну дык, а ты их по-порядку не набирай, набирай как тебе надо.


evvcom   (2006-08-21 14:23:00) [36]

А чем обусловлена необходимость составного первичного ключа? Сделай его обычным из одного поля number, а на MID и MSoftName Unique повесь. А в остальном см. [1]


tytus   (2006-08-21 14:23:00) [37]

>[1]
Написал уже, набил данные. а значения MID - по порядку:1,2,3..7
а нужно, чтобы как см.выше.


Sergey13   (2006-08-21 14:20:00) [38]

> Подскажите как такое можно осуществить.

Создать таблицу, написать прогу для работы и набить данные. В чем проблема то?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо