我有一個表,我想在其中添加不存在的自動遞增 ID。行未排序。我想根據另一列的字典順序添加ID列,如下圖:
CURRENT TABLE AFTER ADDING ID
CLASS | ITEM ID | CLASS | ITEM
------|------- ---|-------|-------
fruits| banana 1 | fruits| apple
------|-------- ---|-------|-------
tools | hammer 2 | fruits| banana
------|-------- ---|-------|-------
fruits| apple 3 | flura | banyan
------|-------- ---|-------|-------
flura | banyan 4 | tools | hammer
------|-------- ---|-------|-------
fauna | human 5 | fauna | human
uj5u.com熱心網友回復:
我的建議是使用編程語言(Python 非常適合這類用例,我將在我的回答中使用它)。所需的步驟如下:
- 使用自動增量欄位在資料庫中創建臨時表
- 在 Python 中查詢您的資料庫并檢索所有行
- 根據所需欄位對串列進行排序
- 將排序后的資料插入到臨時表中
- 將當前表重命名為另一個名稱
- 將 temp 重命名為當前表
uj5u.com熱心網友回復:
- 更改表以添加 ID 列
ALTER TABLE `your_table` ADD COLUMN `ID` INT NULL auto_increment;
- 更新你的表
UPDATE your_table SET
your_table.ID = a.ID,
your_table.CLASS = a.CLASS,
your_table.ITEM = a.ITEM, FROM (
SELECT ROW_NUMBER() OVER(ORDER BY CLASS ASC) AS ID, CLASS, ITEM
FROM your_table) AS a WHERE
a.CLASS = your_table.CLASS
a.CLASS = your_table.ITEM
uj5u.com熱心網友回復:
簡單地
ALTER TABLE things
ORDER BY item;
ALTER TABLE things
ADD COLUMN id INT UNSIGNED AUTO_INCREMENT NOT NULL FIRST;
但是...當您添加新專案時,ID不會重新編號。新專案將獲得最后一個值。
所以...
將行“編號”為您可能會更好SELECT。但這是一個不同的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/506356.html
