MySQL: как “переупорядочить” таблицу

Существует очень твердое продолжающийся ряд на NETTUTS прямо сейчас, которым можно интересоваться.

6
задан cardflopper 5 December 2009 в 00:35
поделиться

5 ответов

Могу я спросить, зачем вам это нужно?

Если кто-то изменит любое из значений имени или вставит новые строки, это испортит вашу схему упорядочивания. Попытка сохранить какой-то смысл в упорядочивании PK, который уже доступен в другом месте таблицы (столбец имени), кажется излишним и, следовательно, плохой идеей.

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

PS: Извините за ответ без ответа. Обычно я предполагаю, что у вас есть веская причина, и просто даю ответ, который напрямую касается того, что вы пытаетесь сделать, но из других ваших вопросов я заметил, что вы все еще находитесь на ранних этапах изучения дизайна базы данных,

8
ответ дан 8 December 2019 в 03:09
поделиться

Самый простой способ сбросить автоматическое приращение - создать другую таблицу.

MySQL предоставляет такие полезные команды, как CREATE TABLE LIKE и RENAME TABLE .

CREATE TABLE table2 LIKE table1;

INSERT INTO table2
  SELECT * FROM table1 ORDER BY name;

DROP TABLE table1;

RENAME TABLE table2 TO table1;
]
13
ответ дан 8 December 2019 в 03:09
поделиться

​​Вы можете ВЫБРАТЬ новую таблицу из старой таблицы, упорядочив свой выбор по желанию. Иметь идентификатор автоинкремента в новой таблице. При необходимости отбросьте старую таблицу и переименуйте новую таблицу.

7
ответ дан 8 December 2019 в 03:09
поделиться

Почему бы не добавить «ORDER BY name ASC» в конце вашего запроса? Я предполагаю, что вам по какой-то причине нужен идентификатор.

2
ответ дан 8 December 2019 в 03:09
поделиться
 SELECT
       RANK() Over (ORDER BY Name) As NewID
     , Name
     , Color

 FROM Fruits

можно сохранить во временную таблицу, затем усечь, затем усечь таблицу фруктов и вставить, но это, вероятно, дерьмовые решения.

0
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: