Почему таблица случайным образом реорганизует строки? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть следующая таблица

table

DBName  Server  Status  UpdateTime
DB1 server1 NULL    5/4/2019
DB1 server1 NULL    NULL
DB2 server2 NULL    6/4/2019
DB2 server2 NULL    6/4/2019
DB3 server2 NULL    NULL
DB3 server2 NULL    NULL

Иногда, когда я нажимаю на выбранные строки, это каким-то образом переставляет некоторые случайные строки.Также, если я нажимаю «Изменить», я замечаю, что строки были переставлены.Почему это происходит?

rearranged

DBName  Server  Status  UpdateTime
DB1 server1 NULL    5/4/2019
DB2 server2 NULL    6/4/2019
DB3 server2 NULL    NULL
DB3 server2 NULL    NULL
DB2 server2 NULL    6/4/2019
DB1 server1 NULL    NULL

Я имею в виду, что на самом деле это не вызывает проблем, но у меня есть 3 среды, и это затрудняет сравнениерезультаты в разных средах, когда строки не в одинаковом порядке.

Сначала это происходило, когда я работал удаленно из дома.поэтому я подумал, что это может быть проблема VPN / сети.Но даже в офисе это случилось, когда я не подключился к VPN.

РЕДАКТИРОВАТЬ:

Это отличается от этого вопроса, так как у меня нет первичного ключа

Всегда ли «Выбрать» порядок по первичному ключу?

1 Ответ

5 голосов
/ 04 июня 2019

Таблицы SQL не имеют внутреннего порядка. Это по замыслу. Если вы не укажете порядок, то СУБД может возвращать строки в любом порядке. Часто оказывается, что порядок, в котором строки были вставлены изначально, и поэтому люди иногда предполагают, что это естественный или неотъемлемый порядок таблицы. Но на самом деле нет ничего, что гарантировало бы это, поэтому вы не можете на это полагаться. Иногда, как вы заметили, СУБД может решить поступить иначе, по своим собственным причинам.

Если вы хотите видеть вещи в определенном порядке последовательно, то, к счастью, решение ясное и простое: вы должны использовать предложение ORDER BY в своем запросе SELECT.

Если вам нужно упорядочить вещи ненатуральным способом (например, упорядочить столбец varchar в алфавитном порядке), тогда стандартным обходным решением является добавление дополнительного столбца «sort» в качестве прокси-сервера и упорядочение по нему вместо этого.

...