首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何避免mysql primaryKey约束错误

如何避免mysql primaryKey约束错误
EN

Stack Overflow用户
提问于 2012-05-28 07:03:13
回答 3查看 106关注 0票数 0

我有一张Mysql桌子。

  • 请求- Request_id,Request_message

在用户以HTML填充Request_message后,用户单击submit按钮。我将从request表生成一个请求ID,然后添加该行。(表有两次点击,一次用于获取最后一次request_id,另一次用于将行添加到表中)。我想避免这件事。

同时,假设7-8个用户按下提交按钮,他们将从表中得到相同的最后一个request_id。它们将向最后一个request_id添加1,并尝试添加该行。除了一个都得到主键约束错误 .如何避免这种情况??

请提供你的建议。

谢谢德维什

EN

回答 3

Stack Overflow用户

发布于 2012-05-28 07:06:59

主键使用增量

编辑:如果您不对列使用整数类型,则另一个解决方案是使用行级锁。

票数 2
EN

Stack Overflow用户

发布于 2012-05-28 07:07:46

使用sp在表中插入记录。

表中主键使用“自动编号”字段。

使用

代码语言:javascript
运行
复制
 INSERTINTO request 
            (Request_id, 
             Request_message) 
VALUES      ( (SELECT 'REQ' + Lpad(Ifnull(Max(Request_id) + 1, 0), 4, 0) 
               FROM   request), 
              yourMessage) 
票数 0
EN

Stack Overflow用户

发布于 2012-05-28 07:08:00

对于第一个问题,你可以这样做。

代码语言:javascript
运行
复制
INSERT INTO request (Request_id,Request_message) VALUES (
   (SELECT MAX(Request_id) FROM request), yourMessage)

或者更好的是,您可以使用自动增量作为p.k。

此外,如果您要求DBMS处理所有的增量/插入问题,则可以避免与p.k直接相关的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10780614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档