Why would the auto_increment not work for you? The only case where you
would have a problem is if the last record was deleted before mysql
shutdown. If you are really concerned about this unique scenario,
insert a dummy record before shutdown to guard against it and delete
the dummy record after you start back up.

--
Brent Baisley

On Tue, Aug 12, 2008 at 8:29 AM,  <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I try to generate a unique id for each row in a Mysql-InnoDB Table. Because 
> of many deletes I  can't use an auto_increment column.
> After a Mysql restart, the next value for an auto_increment-column  is 
> max(auto_increment-column)+1, and I need a really unique id.
>
>
> My first solution looks like this:
> I use a second table with an auto-increment-column, and add an insert trigger 
> to the first table.
> The insert trigger adds a row in the second table and uses  the 
> last_insert_id() to get the unique value.
> The (last) row in the second table will never be deleted.
> Does anybody confirm with this solution?
>
> ###################################
> drop table unique_id_messages_1;
> create table unique_id_messages_1 (id bigint not null unique, subject text);
>
> drop table id_sequences_1;
> create table id_sequences_1 (id bigint not null primary key auto_increment);
>
> drop trigger trg_unique_id_messages_1;
>
> DELIMITER |
>
> create trigger trg_unique_id_messages_1 BEFORE INSERT ON unique_id_messages_1
> FOR EACH ROW BEGIN
>  insert into id_sequences_1 values ();
>  set NEW.id = (select last_insert_id());
> END;
> |
> DELIMITER ;
>
> insert into unique_id_messages_1 (subject) values ("x1");
> insert into unique_id_messages_1 (subject) values ("x2");
> insert into unique_id_messages_1 (subject) values ("x3");
> insert into unique_id_messages_1 (subject) values ("x4");
> select * from unique_id_messages_1;
> ###################################
>
>
> Thanks in advance
>
> Rudi
>
>
>
> --
> GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
> Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED]
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>
>

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to