簡體   English   中英

MySQL / PHP如何在mysql中插入一行並將下面的所有自動增量字段增加1

[英]MySQL/PHP How would I insert an row into mysql and increase all the auto incremented fields below by 1

說我有一張這樣的桌子:

id|name  |
----------
1 |fred  |
2 |jim   |
3 |tracy |
4 |stacy |

“id”是具有自動增量的主要索引。

我想在“#2 - jim”下面添加一行。 我將這個新行稱為“約翰”。

我怎么能在“jim”下面插入“john”,這樣john的“id”為3,而“john”下面名字的所有id都會增加1?

例如

id|name  |
----------
1 |fred  |
2 |jim   |
3 |john  |
4 |tracy |
5 |stacy |

非常感謝

此命令將在jim之后為每個人的id添加+1。

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

此命令將在jim之后插入一行。

INSERT INTO your_table(id,name) VALUES(3,'john');

更改主鍵值是一個非常糟糕的主意。 如果您的表與其他表有關系,則會出現一致性問題。 假設它是客戶表,並且有一個訂單表。 上述想法將使trstacy的命令與tracy和tracy的約翰等有關。

這不是自動增量指令的工作方式。 您需要使用UPDATE將第3行更改為john,使用UPDATE將第4行更改為tracy,並使用INSERT將新第5行創建為stacy。 如果您需要在10,000記錄表的第5行之后插入一行,這將是非常糟糕的。

您可以直接更改ID值,但這是非常糟糕的做法。

暫無
暫無

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

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