![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Первичнй ключ по двум столбцам? [D7]
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]> Подскажите как такое можно осуществить.
Создать таблицу, написать прогу для работы и набить данные. В чем проблема то?