簡體   English   中英

如何在MYSQL中刪除並插入序列號並重新排序序列號?

[英]How to delete and insert serial-num in MYSQL and also reorder serial-num?

===============
| id   | name |
===============
|    1 | Ali  |
|    2 | ahmd |
|    3 | jada |
|    4 | nisr |
|    5 | sara |
|    6 | mona |
|    7 | dana |
===============

我想在刪除ID = 5之類的任何行時重新排序ID,就像這樣=>

===============
| id   | name |
===============
|    1 | Ali  |
|    2 | ahmd |
|    3 | jada |
|    4 | nisr |
|    5 | mona |
|    6 | dana |
===============

如果我插入id = 2 name = yafa的行,也是如此,如何在不重復任何值的情況下重新排序表,就像這樣

    | id   | name |
    ===============
    |    1 | Ali  |
    |    2 | yafa |
    |    3 | ahmd |
    |    4 | jada |
    |    5 | nisr |
    |    6 | sara |
    |    7 | mona |
    |    8 | dana |
    ===============

這是假設您始終知道要添加或刪除的“ id”。 (此外,您一次始終只能處理一行)。

對於刪除:

DELETE FROM tableName WHERE id = 5;

UPDATE tableName 
SET    id = id-1
WHERE  id > 5;

對於插入:

UPDATE tableName 
SET    id = id + 1
WHERE  id >= 2;

INSERT INTO tableName (id, name) VALUES (2, 'yafa');

順便說一句,你為什么要這樣做。 將列“ id”設置為自動遞增字段,並由數據庫處理。 您是否要跳過數字?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM