Перейти в группу новостей: 
 

Тема Re: Про SQL
Написал Дмитрий Погребняк <aterlux@ya.ru>
Дата Wed, 13 Jun 2018 18:33:31 +0400
Группа новостей kraft.programming

> Да, но как-то неизящно, если я правильно понял. Но, вероятно, это такая
> концепция в принципе, да. Привычка из "С": если что-то нашёл, то держишь

Некоторые СУБД могут предоставлять нечто более близкое к указателю на
конкретную область данных.
Например, Oracle может возвращать псевдостолбец ROWID, который шифрует как
раз физическое расположение строки в БД.

Например, можно населектить его в запросе:
select t.*, t.rowid from my_table t;
а затем делать что-то вроде
update my_table set ... where rowid = ...;

в таком случае поиск конкретной записи для обновления будет происходить
наиболее быстрым способом.
Однако, следует помнить, что это не замена первичному ключу. Он годится для
идущих подряд select-update, но его нельзя сохранять для дальнейшего
использования, потому как, если было произведено обслуживание БД, и таблица
была пересоздана, или данные ещё как физически были перемещены, то rowid
также поменяется.
Кроме того, при возможном переходе на другие БД с таким кодом могут быть
проблемы.

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

--
Погребняк Д.Э.
http://aterlux.ru/




Последние сообщения в этой теме
 
-# Re: Про SQL (Текущее сообщение) Дмитрий Погребняк 13 июня 2018 в 18:33
.-# Re: Про SQL Alexei 15 июня 2018 в 21:23
..\# Re: Про SQL Alexey Tomin 18 июня 2018 в 09:41