开发者

Apply UUID function to database field from PHP

开发者 https://www.devze.com 2023-01-22 12:58 出处:网络
I have this CodeIgniter and MySQL application. I have a database table where one field must be unique. When I \"delete\" a record from the table I don\'t want to really remove it from the table, I ju

I have this CodeIgniter and MySQL application.

I have a database table where one field must be unique. When I "delete" a record from the table I don't want to really remove it from the table, I just want to set free the value of the unique field so it can be used for a future new record without conflicts and leave it there.

At first I tought applying some sort of UUID function to the field would be a good solution. Can somebody please point me how can I apply the UUID function to the field from the PHP code? I googled about it and couldn't come up with nothing, CodeIgniter's docs neither.

Some other toughts are also welcome and a开发者_JAVA百科ppreciated.

Thanks in advanced!


If I understand correctly your aim here, you can do this with a single line of sql statement.

update users set username = CONCAT(UUID(), username) where username = "username_to_be_deleted"

This is quite a good attempt to keep the unique constraint, unless some wicked handed user of yours picked a username that is in the format of a unique id + some string, and it will accidentaly match. Not likely, though.

Added benefit: as UUID has a fixed format, you can always extract the original username from the encoded value.

And of course, a much better aproach, if you do not add a unique constraint on a field like this, but rather enforce uniqueness programmatically.

0

精彩评论

暂无评论...
验证码 换一张
取 消