iT邦幫忙

DAY 5
0

蠻可愛的資料庫與資料處理系列 第 5

MySQL中重整Sequence的方法

Sequence在實務應用上,有重要的地位.
隨著資料表使用日久,資料會有刪除的情況,
這時候就會照成Sequence不連續的情況.

有些人喜歡對稱有序的事物,破破碎碎的,令人不快!
就會要求,希望能夠重整.

來看看以下範例:

CREATE TABLE iron1005(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(12) NOT NULL
);

INSERT INTO iron1005(name) VALUES
('油達大師'),
('玉面飛鷹'),
('月光刑警'),
('美茄子刑警'),
('川上奈奈美'),
('森奈奈子'),
('麻倉優');

SELECT *
  FROM iron1005;
+----+-----------------+
| id | name            |
+----+-----------------+
|  1 | 油達大師        |
|  2 | 玉面飛鷹        |
|  3 | 月光刑警        |
|  4 | 美茄子刑警      |
|  5 | 川上奈奈美      |
|  6 | 森奈奈子        |
|  7 | 麻倉優          |
+----+-----------------+

-- 刪除月光刑警 與 美茄子刑警

DELETE 
  FROM iron1005
 WHERE id = 3
    OR id = 4;

-- 現在資料是這樣:

SELECT *
  FROM iron1005
 ORDER BY id;

+----+-----------------+
| id | name            |
+----+-----------------+
|  1 | 油達大師        |
|  2 | 玉面飛鷹        |
|  5 | 川上奈奈美      |
|  6 | 森奈奈子        |
|  7 | 麻倉優          |
+----+-----------------+

-- 刪除掉id
ALTER 
TABLE iron1005
 DROP id;

-- 重建 id
ALTER
TABLE iron1005
  ADD id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
  ADD PRIMARY KEY(id);

-- 現在資料是這樣:

SELECT *
  FROM iron1005
 ORDER BY id;

+----+-----------------+
| id | name            |
+----+-----------------+
|  1 | 油達大師        |
|  2 | 玉面飛鷹        |
|  3 | 川上奈奈美      |
|  4 | 森奈奈子        |
|  5 | 麻倉優          |
+----+-----------------+

已經重新排好了!


上一篇
時間區間合併問題
下一篇
產生一億筆測試資料的簡易方法
系列文
蠻可愛的資料庫與資料處理30

尚未有邦友留言

立即登入留言