我的表中有一个FK,但我想修改FK的父表。那么有一个可以实现这一目标的alter命令吗?或者我需要删除FK并创建一个新的? 感谢
答案 0 :(得分:1)
将其添加到您的PK中,它会自动为您更新所有FK:
ON UPDATE CASCADE
有关详细信息,请参阅this article。
编辑根据您的评论,如果您想更改PK数据类型,则取决于更改:
要修改数据类型,请使用ALTER
命令,语法为:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
示例:
ALTER TABLE table_name
ALTER COLUMN id NUMBER(10,2);
ALTER TABLE table_name
ALTER COLUMN id VARCHAR(20);
有关详细信息,请参阅this article。
答案 1 :(得分:1)
看起来你正在寻找alter
声明,但因为你没有提到你想要修改的内容;我假设您要更改列数据类型大小。你可以做这样的事情(一个例子;假设你想把大小从10改为15)
alter table sample3
alter column name varchar(15)
修改强>
在这种情况下,这就是你应该做的。您需要删除现有约束并重新创建约束以指向TableC
alter table TableA
drop constraint your_FK_constraint_name
alter table TableA
add constraint constraint_name
FOREIGN KEY (column_name) references TableC(some other column name)
一个例子:
alter table sample2
drop constraint FK__sample2__realnam__09DE7BCC
alter table sample2
add constraint FK__sample2__realnam
FOREIGN KEY (realname) references sample1(name)
答案 2 :(得分:1)
基于此评论,“现在我在TableA中的当前FK指的是另一个表主键TableB。但我需要修改我当前的FK来引用tableC而不是tableB ...这就是我需要的(修改我的FK的父表 - “
父表是TableB。该表不需要采取任何行动。
在TableA上,您必须:
。
编辑从这里开始
Here是语法链接