SQL语句怎么执行修改关联的主表和子表的字段值?
User(UID,Uname),主键是UIDCollection(CID,Ccontent,UID),主键是CID我想修改User的UID,同时关联的Collection...
User(UID,Uname),主键是UID
Collection(CID,Ccontent,UID),主键是CID
我想修改User的UID,同时关联的Collection表的UID也修改,但是老是提示错误,不知道怎么写?我试过先修改Collection表的UID,后修改User表的,但还是有错。 展开
Collection(CID,Ccontent,UID),主键是CID
我想修改User的UID,同时关联的Collection表的UID也修改,但是老是提示错误,不知道怎么写?我试过先修改Collection表的UID,后修改User表的,但还是有错。 展开
4个回答
展开全部
-- 先查看约束名
select constraint_name from dba_constraints where table_name=‘COLLECTION’
-- 然后删除所有约束
ALTER TABLE Collection DROP CONSTRAINT 约束名;
-- 再添加约束
alter table Collection add constraint pk_Collection primary key(CID);
ALTER TABLE Collection ADD CONSTRAINT FK_test FOREIGN KEY(uid) REFERENCES user(uid);
select constraint_name from dba_constraints where table_name=‘COLLECTION’
-- 然后删除所有约束
ALTER TABLE Collection DROP CONSTRAINT 约束名;
-- 再添加约束
alter table Collection add constraint pk_Collection primary key(CID);
ALTER TABLE Collection ADD CONSTRAINT FK_test FOREIGN KEY(uid) REFERENCES user(uid);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如下写即可:
SELECT A.字母,A数字,C.数字
FROM A
LEFT JOIN
(
SELECT 字母,数字 FROM B
WHERE B.数字=(SELECT MAX (B1.数字)FROM B AS B1 WHERE B1.字母 =B.字母)
GROUP BY 字母,数字
)C ON C.字母 = A.字母
fsjvip的写法也可以,且没有子查询,效率更高。
SELECT A.字母,A数字,C.数字
FROM A
LEFT JOIN
(
SELECT 字母,数字 FROM B
WHERE B.数字=(SELECT MAX (B1.数字)FROM B AS B1 WHERE B1.字母 =B.字母)
GROUP BY 字母,数字
)C ON C.字母 = A.字母
fsjvip的写法也可以,且没有子查询,效率更高。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-23
展开全部
把两张表的外键关系去掉,改了再加回来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是USER中的UID和Collection表的UID他们两个的类型不同,也可能是建表的时候他们的长度不同。要把他们中的任何方面都建的相同才能不会出错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询