从PHP中将UUID函数应用于数据库字段

时间:2010-10-28 04:44:16

标签: php mysql codeigniter

我有这个CodeIgniter和MySQL应用程序。

我有一个数据库表,其中一个字段必须是唯一的。当我从表中“删除”一条记录时,我不想真正将其从表中删除,我只想释放唯一字段的值,以便它可以用于未来的新记录而不会发生冲突并保留它那里。

起初,我尝试将某种UUID功能应用于该领域将是一个很好的解决方案。 有人可以指点我如何从PHP代码中将UUID函数应用到字段中? 我用Google搜索了一下,无法提出任何问题,CodeIgniter的文档也没有。

其他一些强硬也受到欢迎和赞赏。

先谢谢!

1 个答案:

答案 0 :(得分:1)

如果我在这里正确理解你的目标,你可以用一行sql语句来做到这一点。

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

这是保持唯一约束的一个很好的尝试,除非你的一些邪恶的用户选择了一个唯一id +某个字符串格式的用户名,并且它会偶然匹配。但不太可能。

增加了好处:由于UUID具有固定格式,您始终可以从编码值中提取原始用户名。

当然,如果你不在这样的字段上添加唯一约束,而是以编程方式强制执行唯一性,那么这是一个更好的方法。