Значение поля RDB$DB_KEY?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Значение поля RDB$DB_KEY?

Сообщение Naidenov » 20 июн 2006, 17:59

Подскажите пожалуйста, для чего в каждой пользовательской (не системной) таблице в неявном виде присутствует поле RDB$DB_KEY? Какие в нем хранятся значения, откуда они берутся и для чего используются?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 20 июн 2006, 18:02

Не три, не чеши, само пройдёт. Когда (если) понадобится, тогда вопрос будет стоять по-другому. :)

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 20 июн 2006, 18:21

Merlin писал(а):Не три, не чеши, само пройдёт. Когда (если) понадобится, тогда вопрос будет стоять по-другому. :)
Прямо как на сеансе у гомеопата. :) Если у тебя нет желания отвечать, не сори многозначительными сообщениями с претензией на гениальность. Может кто другой откликнется и растолкует по-человечески.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 20 июн 2006, 18:29

Для достижения гениальности вообще-то, уж если приспичило, достаточно набрать сие заклинание в гугле и почитать статейки Клавдия. Аднака интерес к этому зверю обычно говорит о безудержном стремлении жить без ПК и не менее обычно ведёт к глюкам и поломатым данным. Так что, чиста из человеколюбия - лучше всё-тки как все, по камушкам, если нет крайней нужды. А когда она есть, то вопрос действительно формулируется другой.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 20 июн 2006, 18:32


kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 20 июн 2006, 18:38

для чего в каждой пользовательской (не системной) таблице в неявном виде присутствует
это физический номер записи. Тебе оно надо?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 20 июн 2006, 18:43

kdv писал(а):это физический номер записи. Тебе оно надо?
Или всё же адрес :wink:

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 20 июн 2006, 19:21

WildSery писал(а):Или всё же адрес
монопенисуально. Игра терминами.

CCB
Сообщения: 35
Зарегистрирован: 20 июн 2006, 14:06

Сообщение CCB » 21 июн 2006, 08:14

для одной, неправильно спроектированной, базы пришлось писАть утилиту удаления задвоенных записей используя именно это поле...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 июн 2006, 11:58

CCB писал(а):для одной, неправильно спроектированной, базы пришлось писАть утилиту удаления задвоенных записей используя именно это поле...
Нечем тут хвастаться. Можно было обойтись и без системных объектов, например, курсор использовать.

CCB
Сообщения: 35
Зарегистрирован: 20 июн 2006, 14:06

Сообщение CCB » 21 июн 2006, 12:02

WildSery писал(а):
CCB писал(а):для одной, неправильно спроектированной, базы пришлось писАть утилиту удаления задвоенных записей используя именно это поле...
Нечем тут хвастаться. Можно было обойтись и без системных объектов, например, курсор использовать.
если внимательно читать классиков, то курсоры, временные таблицы и иже с ними - это излишества и не входят в стандарт SQL-92...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 21 июн 2006, 12:07

что не мешает им входить в SQL-99...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 июн 2006, 12:11

CCB писал(а):если внимательно читать классиков, то курсоры, временные таблицы и иже с ними - это излишества и не входят в стандарт SQL-92...
rdb$db_key тоже не входит.

CCB
Сообщения: 35
Зарегистрирован: 20 июн 2006, 14:06

Сообщение CCB » 21 июн 2006, 12:27

WildSery писал(а):rdb$db_key тоже не входит.
зато в него входит - select FieldName from TableName, вот и приходим к select rdb$db_key from TableName

CCB
Сообщения: 35
Зарегистрирован: 20 июн 2006, 14:06

Сообщение CCB » 21 июн 2006, 12:42

dimitr писал(а):что не мешает им входить в SQL-99...
опять почитаем классиков - Селко Д. "Стиль программирования Джо Селко на SQL", 2006 г.
стр. 149
"Применение временных таблиц обычно является признаком плохого дизайна. Чаще всего их применяют для хранения промежуточных данных, как мы в 1950-х годах использовали временные магнитные ленты."

"Зачем же они (курсоры (прим. маё)) тогда вообще нужны? Главные причины - незнание основ SQL и старые привычки."

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 21 июн 2006, 13:08

CCB писал(а):для одной, неправильно спроектированной, базы пришлось писАть утилиту удаления задвоенных записей используя именно это поле...
Вот это уже ближе к постановке реального вопроса... А также починка поломатой базы. Кстати, я так понимаю, коллега тут рядушком под курсором имел в ввиду where current of? Так это и есть использование rdb$db_key за минусом одной операции позиционирования ;)

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 21 июн 2006, 14:40


Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 21 июн 2006, 14:52

kdv писал(а):это физический номер записи. Тебе оно надо?
Да. Мне нужно было удалить из нескольких таблиц, не имеющих уникальных ключей, дубликаты записей. Кроме того, хотелось попутно разобраться, как этот номер вообще формируется? Вообщем, потратив некоторое количество ДРАГОЦЕННОГО времени на поиски нужной информации, я таки нашел ответы на свои вопросы здесь http://www.ibase.ru/devinfo/deldupes.htm. Жаль только, что вместо фактических разъяснений или конкретных ссылок приходиться читать околосущностное словоблудие или беспредметные споры, вызванные глубинным мужским желанием "померяться у кого больше" (я имею ввиду знания по той или иной проблеме)... :(

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 21 июн 2006, 16:05

Да. Мне нужно было удалить из нескольких таблиц, не имеющих уникальных ключей, дубликаты записей.
на сайте есть документ,
www.ibase.ru/devinfo/deldupes.htm
ообщем, потратив некоторое количество ДРАГОЦЕННОГО времени на поиски нужной информации
я бы выразился, да стесняюсь. сразу в поиск сходить или конкретный вопрос задать было нельзя?
Жаль только, что вместо фактических разъяснений или конкретных ссылок приходиться читать околосущностное словоблудие или беспредметные споры, вызванные глубинным мужским желанием "померяться у кого больше" (я имею ввиду знания по той или иной проблеме)..
хочешь забаню, за оскорбление участников форума?
Ты задал абстрактный вопрос. Если бы ты задал КОНКРЕТНЫЙ вопрос, а не занимался словоблудием, то ответ бы получил в течение минуты.

CCB
Сообщения: 35
Зарегистрирован: 20 июн 2006, 14:06

Сообщение CCB » 22 июн 2006, 07:35

Naidenov писал(а):Жаль только, что вместо фактических разъяснений или конкретных ссылок приходиться читать околосущностное словоблудие или беспредметные споры, вызванные глубинным мужским желанием "померяться у кого больше" (я имею ввиду знания по той или иной проблеме)... :(
ух ты, какие мы нежные, я аж праслезился...

Ответить