maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #03449
Re: AUTO_INCREMENT and partitioning
You can use no primary key, and just put a regular key (not unique key) on the auto_increment column. You must make sure that manual insertions don't create a duplicate if value.
>> CREATE TABLE new (
>> id INT NOT NULL AUTO_INCREMENT,
>> name VARCHAR(50),
>> added DATE,
>> KEY (id),
>> )
>> PARTITION BY RANGE( TO_DAYS(added) )
>> ( PARTITION p0 VALUES LESS THAN (1990),
>> PARTITION p1 VALUES LESS THAN (2000),
>> PARTITION p2 VALUES LESS THAN MAXVALUE
>> ) ;
>>
Look at RANGE COLUMNS for a more natural way to partition by date:
>> CREATE TABLE new (
>> id INT NOT NULL AUTO_INCREMENT,
>> name VARCHAR(50),
>> added DATE,
>> PRIMARY KEY (id),
>> )
>> PARTITION BY RANGE COLUMNS (added)
>> ( PARTITION p0 VALUES LESS THAN ('1990-01-01'),
>> ....
>> PARTITION pmax VALUES LESS THAN MAXVALUE
>> ) ;
Sent from my iPhone
> On Mar 12, 2016, at 5:16 AM, Guillaume Lefranc <guillaume.lefranc@xxxxxxxxxxx> wrote:
>
> The only solution is to make (id, added) a PK, because the partitioning column must always belong to unique key, if there is such.
> In your case I would change added type to DATETIME to avoid collision.
>
> Regards
>
>> On Sat, Mar 12, 2016 at 2:10 PM Ghazi Btissam <btissam.ghazi@xxxxxxxxx> wrote:
>> Hi,
>>
>> 1- I have a table with a unique key which is calculated by the AUTO_INCREMENT feature, and I need to range partition it using a date field , is it possible and/or how to do it?
>>
>> 2- Is there a way to implement sequences for the primary key (like it exists in Oracle) or the AUTO_INCREMENT is the only one in MariaDb?
>>
>> For example:
>>
>> CREATE TABLE new (
>> id INT NOT NULL AUTO_INCREMENT,
>> name VARCHAR(50),
>> added DATE,
>> PRIMARY KEY (id),
>> )
>> PARTITION BY RANGE( TO_DAYS(added) )
>> ( PARTITION p0 VALUES LESS THAN (1990),
>> PARTITION p1 VALUES LESS THAN (2000),
>> PARTITION p2 VALUES LESS THAN MAXVALUE
>> ) ;
>> Thanks
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~maria-discuss
>> Post to : maria-discuss@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-discuss
>> More help : https://help.launchpad.net/ListHelp
>
> --
> Guillaume Lefranc
> Remote DBA Services Manager
> MariaDB Corporation
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-discuss
> Post to : maria-discuss@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help : https://help.launchpad.net/ListHelp
Follow ups
References