Quantcast
Channel: User Mohamed Mufeed - Stack Overflow
Viewing all articles
Browse latest Browse all 36

How can auto-Incrementing be maintained when concurrent transactions occur on a compound key In MYSQL?

$
0
0

I recently encountered an error in my application with concurrent transactions. Previously, auto-incrementing for compound key was implemented using the application itself using PHP. However, as I mentioned, the id got duplicated, and all sorts of issues happened which I painstakingly fixed manually afterward.

Now I have read about related issues and found suggestions to use trigger.

So I am planning on implementing a trigger somewhat like this.

DELIMITER $$CREATE TRIGGER auto_increment_my_table    BEFORE INSERT ON my_table FOR EACH ROW        BEGIN            SET NEW.id = SELECT MAX(id) + 1 FROM my_table WHERE type = NEW.type;        END $$DELIMITER ;

But my doubt regarding concurrency still remains. Like what if this trigger was executed concurrently and both got the same MAX(id) when querying?

Is this the correct way to handle my issue or is there any better way?


Viewing all articles
Browse latest Browse all 36

Trending Articles