我有一个存储基本文章信息的表:
表名:cms_articles
[article_id] , [article_header] , [article_content]
1 , test , test content
2 , another , something
3 , article , text
我正在使用以下 SQL 交换两篇文章的文章 ID:-
"UPDATE cms_articles SET article_id=99999 WHERE article_id=".$article_id1
"UPDATE cms_articles SET article_id=".$article_id1." WHERE article_id=".$article_id2
"UPDATE cms_articles SET article_id=".$article_id2." WHERE article_id=99999"
所以我只是在交换发生时使用临时 ID 99999 交换他们的 ID。
这行得通,但是当我向表中添加一篇新文章时,由于 autoincrement
,它会自动将 ID 设置为 100000,尽管最高的 article_id 实际上是 3!
最佳答案
交换主键的效果如何? 不等等没关系。
因为 SQL 是一种声明式编程语言,而不是过程式编程语言。 交换“主键”是错误的,在这里纠正你将确保无辜的路人不会采用你对良好设计原则的自由放任。
关于php - 交换 SQL 主键而不影响自增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17761272/