gpt4 book ai didi

mySQL - 在添加主键列之前根据需要对表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:27 25 4
gpt4 key购买 nike

我正在使用以下符号将主键添加到表中:

ALTER TABLE tablename ADD id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST

这工作正常,但在添加此主键之前,它似乎将表的顺序默认为行的原始输入顺序。这对于当前情况来说并不理想。

这个表的顺序很重要,因为它代表一个菜单结构,我需要按parentId对表进行排序,如下,在将主键添加到表之前:

+------+------------+------------------------< br/>|编号 | parent 身份 | ...
+------+------------+----------------------------
| 1 | 1 | ...
+------+------------+----------------------------
| 2 | 1 | ...
+------+------------+----------------------------
| 3 | 2 | ...
+------+------------+----------------------------
| 4 | 2 | ...
+------+------------+----------------------------
| 5 | 2 | ...
+------+------------+----------------------------
...

这是在添加主键列“id”后表应该如何查看,但目前我似乎无法在添加 id 列之前按 parentId 对表进行排序。

我一直在尝试上述查询的变体,例如:

ALTER TABLE 表名 ADD id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ORDER BY parentId ASC

但没有成功。

有什么建议吗??

最佳答案

AUTO_INCREMENT 列不必符合任何特定顺序——它只是任意整数。将来会发生什么,例如,当您向菜单添加一些新项目时?它将“属于”表的中间,但它的 AUTO_INCREMENT 值将是一个新分配的值,不受您当前排序的约束。

无需担心 AUTO_INCREMENT 值的顺序,只需在从表中选择数据时应用正确的 ORDER BY 子句即可:

SELECT *
FROM tablename
ORDER BY parentId ASC;

即使 有一个 AUTO_INCREMENT 列,您也必须应用 ORDER BY 子句来确保结果的顺序,所以您最好使用使最具语义意义。

关于mySQL - 在添加主键列之前根据需要对表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1341224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com