2009-02-18 5 views
3

Что такое ROWID и RECID на самом деле в процессе. Можем ли мы использовать RECID вместо ROWID. Какая разница между ними?ROWID и RECID

ответ

2

RECID устарел, для пары версий сейчас. ROWID заменяет его. Я понимаю, что на самом деле он возвращает физический адрес блока БД, содержащего вашу запись. Из памяти они представили ROWID, когда они хотели поддерживать различные механизмы БД - Oracle/SQL server et al - из 4GL, что подразумевает, что в ROWID больше, чем RECID.

Я бы держался подальше от RECID, вы можете уйти с ним на короткий срок, но вы даете себе потенциальную проблему, которую вы могли бы избежать вообще.

9

Оба RECID и ROWID являются уникальными указателями на конкретную запись в базе данных.

Оба являются более или менее физическими указателями в самой базе данных, за исключением таблиц без OpenEdge, где на базовой платформе нет эквивалента. В этих случаях он может состоять из значений, составляющих первичный ключ.

RECIDs - это 32-битные целые числа до 10.1A и были хороши, когда база данных была базой данных OpenEdge и имела только одну область. С 10.1B вперед они были обновлены до 64-битных целых чисел.

В v6 емкость была добавлена ​​для подключения к базам данных без OpenEdge, а в v8 - для создания баз данных OpenEdge более чем одной области хранения. В этот момент RECIDs было недостаточно для полного учета всех записей в таблице при любых обстоятельствах.

Так возникла структура ROWID. Его фактическая архитектура зависит от типа базы данных под ней, но она не страдает от ограничений того, что она является целым числом.

В документации достаточно ясно указывается that RECIDs should not be used going forward, за исключением кода, который манипулирует метасемей базы данных OpenEdge.

Смежные вопросы