作者johnney (恋念不已...)
看板PHP
标题Re: [请益] 有关MYSQL的问题...
时间Tue Apr 11 12:00:59 2006
※ 引述《andreli (第一次赌P币就没钱)》之铭言:
: ※ 引述《JimmyLi (Protect)》之铭言:
: : 应该还是要从程式上面下手
: : 靠MySQL达不到这样的需求
: : 而且如果要这样做,建议把Auto_increment功能拿掉
: : 先用SELECT MAX 找出要insert 的流水号,然後在insert 资料
: : 删除的运作方式
: : DELETE FROM TABLE WHERE 流水号 = XXX
: : UPDATE FROM TABLE SET 流水号 = 流水号 -1 WHERE 流水号 > XXX
: : 这是我想到的方法,大家再讨论看看有没有更好的作法吧... :)
: 因为我对MySQL不太熟,所以我也不知道有没有直接的作法
: 我的想法跟楼上的差不多,只是如果要使用auto_increment我想应该也是可以
: 就在最後让auto_increment的值-1也就可以了。
: 详细语法可以参考一下phpMyAdmin
: 不知道还有没有人什麽神奇的想法? = =a
老外的建议
For those that are looking to "reset" the auto_increment,
say on a list that has had a few deletions
and you want to renumber everything, you can do the following.
DROP the field you are auto_incrementing.
ALTER the table to ADD the field again with the same attributes.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.190.160
※ 编辑: johnney 来自: 140.119.190.160 (04/11 12:01)
1F:推 andreli:好厉害, 这内容哪里找的? >__< 04/11 13:11
2F:推 kenshieh:这样子 table 超大的话, loading 会超大吧 04/11 13:37
3F:推 JimmyLi:嗯, 假如我只是删除了最後一笔,整个table都要重建. ? 哈 04/11 13:41
4F:推 soulmates:!!!!! 04/11 14:05
5F:推 EAFV:不过原主题这功能是为什麽要这样跑啊 04/11 15:56
6F:→ EAFV:基本上我看过的大部份情况都会砍掉就算了直接接下去 04/11 15:57
7F:推 soulmates:如果这样跑下去.那.我那个值该设多大啊? 04/11 20:03
8F:→ soulmates:我现在那个栏位是设int(3)啦..XD..超级新手..:$:$:$ 04/11 20:04
9F:推 blackbing:对阿如果要这做的话不如就不要给他auto_increment 04/11 22:20
10F:→ blackbing:用另外一个栏位存这个编号就好了 04/11 22:21
11F:→ soulmates:(拍头!)对吼......XD..在想什麽啊..感恩感恩!! 04/11 23:15