2015-11-19 2 views
0

Кто-нибудь знает, почему порядок строк изменился после того, как я сделал обновление таблицы? Есть ли способ вернуть заказ или изменить другой порядок, например: порядок по алфавиту?PostgreSQL - Сделано обновление таблицы в функции, которую я создал, и теперь изменился порядок строк в таблице

Это обновление я выполнил:

update t set amount = amount + 1 where account = accountNumber 

После этого обновления, когда я иду и увидеть таблицу, порядок изменился

+0

Большинство РСУБД не имеют внутреннего «заказа». Конечно, вы можете заказать свой набор результатов, используя любой столбец, который вы хотите. –

+0

@TimBiegeleisen, как я могу изменить порядок в любом столбце, который я желаю? – Brandon

+0

Отправьте свой запрос (по крайней мере) и схему таблицы (еще лучше). –

ответ

1

таблица не имеет естественный порядок строк, некоторые базы данных системы фактически отклонят ваш запрос, если вы не добавите предложение ORDER BY в конце своего SELECT

Почему заказ изменился?

Поскольку механизм базы данных извлекает ваши строки в физическом порядке, они поступают из хранилища. Некоторые двигатели, такие как SQL Server, могут иметь CLUSTERED INDEX, который заставляет физический порядок, но он по-прежнему никогда не гарантирует, что вы получите свои результаты в этом точном порядке.

Кластеризованный индекс существует в основном как оптимизация. PostgreSQL имеет аналогичную CLUSTER функции, чтобы изменить физический порядок, но это тяжелый процесс, который блокирует таблицу: http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Как заставить алфавитный порядок строк?

Добавить в ваш запрос пункт ORDER BY.

SELECT * FROM table ORDER BY column 
+1

Спасибо, я понимаю сейчас! – Brandon

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