【发布时间】:2010-03-16 14:01:23
【问题描述】:
我有一些相当简单的要求,但我不确定如何实现它们:
- 我有多个并发线程运行同一个查询
- 查询提供一个“字符串”值 - 如果它存在于表中,则查询应返回匹配行的 id,否则查询应插入“字符串”值并返回最后插入的 id
- “字符串”列是(并且必须是)文本列(它大于 varchar 255),因此我不能将其设置为唯一 - 必须通过访问机制强制执行唯一性
- 查询需要是存储过程格式(不支持MySQL中的表锁)
如何保证“字符串”是唯一的?在另一个线程读取表并没有找到匹配的“字符串”项目后,如何防止其他线程写入表?
感谢您的建议..
【问题讨论】:
标签: mysql