Re: remove gaps in a table
From: Jerry Stuckle <jstucklex_at_attglobal.net>
Date: Wed, 20 Dec 2017 08:25:50 -0500
Message-ID: <p1docr$elc$1_at_jstuckle.eternal-september.org>
>
> Yes.
>
> Isn't what you describe just a typical scenario that would otherwise
> still result in the unwanted "sequence gap"?
>
> What I suggested will always at run time:
> ""reduce" the order_number, to remove gaps"
> as per the stated requirement.
>
> GM
>
Date: Wed, 20 Dec 2017 08:25:50 -0500
Message-ID: <p1docr$elc$1_at_jstuckle.eternal-september.org>
[Quoted] On 12/19/2017 11:55 PM, Geoff Muldoon wrote:
> In article <p1coa6$341$1_at_jstuckle.eternal-september.org>,
> jstucklex_at_attglobal.net says...
>> >> On 12/19/2017 5:43 PM, Geoff Muldoon wrote: >>> In article <5a397e95$0$31613$426a74cc_at_news.free.fr>, mireero_at_free.fr >>> says... >>>> >>>> Hi, >>>> >>>> I have a table "orders" which is basically: >>>> >>>> create database tmp; >>>> use tmp >>>> create table orders ( >>>> order_id int auto_increment primary key, >>>> order_number int, >>>> order_on date >>>> ); >>> >>>> I'm looking for a way to "reduce" the order_number, to remove gaps, >>> that >>>> is to obtain: >>> >>>> How would you achieve this ? >>>> Is there a "mysql only" way to achieve the desired result ? >>>> I guess we could just iterate on all rows and set the order_number, >>>> beginning from 1 but I have the feeling I'm missing something. >>>> >>>> Note: in the real table, there are thousands of rows. >>> >>> If you need order_number to be strictly sequential within a month with >>> no gaps, the best solution is to not store it in the database at all. >>> >>> Just use a ranking of the order_id, partitioned by month, and generate >>> it on-the-fly each time the query is run. >>> >>> GM >>> >> >> That's will be a problem if the date is changed to a new month or a row >> is deleted. Everything after that will have a new number.
>
> Yes.
>
> Isn't what you describe just a typical scenario that would otherwise
> still result in the unwanted "sequence gap"?
>
> What I suggested will always at run time:
> ""reduce" the order_number, to remove gaps"
> as per the stated requirement.
>
> GM
>
Your "solution" will change the number should the rows change. Juse because is reduces the order_number to remove gaps does not mean it is the right answer - or even a good answer.
-- ================== Remove the "x" from my email address Jerry Stuckle jstucklex_at_attglobal.net ==================Received on Wed Dec 20 2017 - 14:25:50 CET