Есть ли недостаток для использования rowid в базе данных? - PullRequest
2 голосов
/ 25 марта 2009

Как указано, при доступе к базе данных в приложении есть какой-либо недостаток использования rowid?

Ответы [ 3 ]

3 голосов
/ 25 марта 2009

Несмотря на то, что rowid уникально идентифицирует строку в таблице, он может изменить свое значение, если базовая таблица является индексированной организованной таблицей или секционированной таблицей .

Кроме того, значения строк изменяются, если таблица экспортируется и импортируется с использованием EXP / IMP.

Это означает, что строки не должны храниться для последующего повторного использования, поскольку соответствующая строка может либо не существовать, либо содержать совершенно разные данные.

1 голос
/ 25 марта 2009

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

0 голосов
/ 25 марта 2009

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

Однако вам никогда не следует сохранять этот Rowid в базе данных или где-либо еще, поскольку восстановление из резервной копии и т. Д. Может изменить ROWID.

Если вы используете Oracle, используйте UROWID - универсальный ROWID - так как это прекратит использовать физические ROWID и начнет использовать логические ROWID для таблиц, где ROWID может измениться, например, во время сеанса, например на индексной организованной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...