我有这个CodeIgniter和MySQL应用程序。
我有一个数据库表,其中一个字段必须是唯一的。当我从表中“删除”一条记录时,我不想真正将其从表中删除,我只想释放唯一字段的值,以便它可以用于未来的新记录而不会发生冲突并保留它那里。
起初,我尝试将某种UUID功能应用于该领域将是一个很好的解决方案。 有人可以指点我如何从PHP代码中将UUID函数应用到字段中? 我用Google搜索了一下,无法提出任何问题,CodeIgniter的文档也没有。
其他一些强硬也受到欢迎和赞赏。
先谢谢!
答案 0 :(得分:1)
如果我在这里正确理解你的目标,你可以用一行sql语句来做到这一点。
update users set username = CONCAT(UUID(), username) where username = "username_to_be_deleted"
这是保持唯一约束的一个很好的尝试,除非你的一些邪恶的用户选择了一个唯一id +某个字符串格式的用户名,并且它会偶然匹配。但不太可能。
增加了好处:由于UUID具有固定格式,您始终可以从编码值中提取原始用户名。
当然,如果你不在这样的字段上添加唯一约束,而是以编程方式强制执行唯一性,那么这是一个更好的方法。