sql根据主表id更新另一表ID,请问大家sql语句该怎么写呀? 10
表:company(主表)字段:companyIdcompanyNamecontacts表:users(子表)字段:userIdcompanyIduserNameprov...
表:company(主表)
字段:
companyId companyName contacts
表:users(子表)
字段:
userId companyId userName province
两表已经建立了关系
现在需要 根据 company表的companyId 更新users表的companyId ,我现在做的是已经在下拉框下显示了company表的companyName字段
当我选择那个companyName时就会在servlet里更新那个users表的companyId 展开
字段:
companyId companyName contacts
表:users(子表)
字段:
userId companyId userName province
两表已经建立了关系
现在需要 根据 company表的companyId 更新users表的companyId ,我现在做的是已经在下拉框下显示了company表的companyName字段
当我选择那个companyName时就会在servlet里更新那个users表的companyId 展开
6个回答
展开全部
一般情况做关联后是不能更新外键的,因为有约束。所以一般操作是不可以。
但是有两个简单的办法
1.是你更新前设外键关联无效,更新后恢复外键有效
2.设置外键的时候在外键上加 ON UPDATE CASCADE ON DELETE CASCADE
这样在父表更新或删除的时候,字表就会跟着更新和删除。
但是有两个简单的办法
1.是你更新前设外键关联无效,更新后恢复外键有效
2.设置外键的时候在外键上加 ON UPDATE CASCADE ON DELETE CASCADE
这样在父表更新或删除的时候,字表就会跟着更新和删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.你下拉框显示的companyName,但是你必须为这个下拉框绑定companyId作为它的选中值。
2.你想更新users表companyId?这两个表就靠这个字段关联,你怎么要修改这个字段?
2.你想更新users表companyId?这两个表就靠这个字段关联,你怎么要修改这个字段?
追问
是关联的呀,我想根据company表里companyId更新users表里的companyId,我已经下拉框显示了companyName,我准备通过选择companName时顺便将它的companyId传到servlet去更新users表的companyId,这是我的想法。至于为什么要这么做是因为工作需要。项目需求需要这样做
追答
你既然想改,当然可以改。
两种方法。
1.直接在数据库(sqlserver)里面创建一个触发器。当company表的companyId发生修改时,users表的companyid跟着修改。
语句:
create trigger tig_update
on company for update
as
begin
if update(companyId)
begin
update users set companyid=i.companyid from Inserted as i,Deleted as d,users as u
where u.companyid=d.companyid
end
end
--这样,你只要修改company表的companyid,users表的companyid会自动更改。
2.在程序中编写sql语句,前提:你要得到你选择的companyId,在此定义为a;和就的companyid 定义为b
sql:update users set companyid=a where companyid=b
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没明白你的意思,在servlet更新是什么意思?
最主要的一点,你要怎么关联到users表?我的意思是,用户可能在页面选择了公司AAA,但你要更新到users的那一条记录去?你要说清楚users表是怎么跟company关联的
最主要的一点,你要怎么关联到users表?我的意思是,用户可能在页面选择了公司AAA,但你要更新到users的那一条记录去?你要说清楚users表是怎么跟company关联的
追问
user表里的companyId与company表里的companyId相关联
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update u set u.companyid=com.companyid
from users u
inner join company com
on u.companyid=com.companyid
from users u
inner join company com
on u.companyid=com.companyid
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子查询即可
SELECT (SELECT name FROM TA WHERE id = TB.id1) AS id1,
(SELECT name FROM TA WHERE id = TB.id2) AS id2
FROM TB
SELECT (SELECT name FROM TA WHERE id = TB.id1) AS id1,
(SELECT name FROM TA WHERE id = TB.id2) AS id2
FROM TB
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询