在mysql中需要将两个表合并,但一个表有重复项,怎么合并?
假定有两个表t1,t2,其中t1表有字段ID,birh,t2表有字段ID,Event,不过t2中的字段ID有重复项(但Event不重复)。现在想在t2表中增加一列名为bi...
假定有两个表t1,t2, 其中t1表有字段ID, birh, t2表有字段ID, Event,不过t2中的字段ID有重复项(但Event不重复)。现在想在t2表中增加一列名为birth, 值为表一中对应ID的birth.各位大侠,请问该怎么写语句呢。网上查了很多,试了语句update t1,t2 set t2.birth=t1.birth where t2.ID=t1.ID,但一直显示正在执行,最后显示错误信息:lock wait timeout exceed. 会是因为t2的ID字段有重复项的原因么?
展开
2014-01-10 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:925
获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:
向TA提问 私信TA
关注
展开全部
提示的是你的表被锁住了,等待超时,应该是有其他用户正在执行dml语句在t2表上。
建议你查查数据字典,是谁在操作t2表。或者直接重启mysql。
另外你的sql语句看着有些别扭,请改成:
update t2 set t2.birth=(
select t1.birth from t1 where t1.id=t2.id) ;
要保证t1中的id没有重复就行。
建议你查查数据字典,是谁在操作t2表。或者直接重启mysql。
另外你的sql语句看着有些别扭,请改成:
update t2 set t2.birth=(
select t1.birth from t1 where t1.id=t2.id) ;
要保证t1中的id没有重复就行。
追问
首先谢谢你的回答!那两个表都是在local的 所以肯定没有其他人在用。你写的那种表达式 我也试过 也是有出错的信息提示!
首先谢谢你的回答!那两个表都是在local的 所以肯定没有其他人在用。你写的那种表达式 我也试过 也是有出错的信息提示!
展开全部
先删除重复的,再合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同学 ,研究下mysql触发器吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是因为这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询