修改主键的类型(数据库)

[size=xx-small]SQL SERVER 修改[/size]把主键的类型从int型改成string型

先删除主键,然后修改主键对应字段的类型,最后从新添加主键

ALTER TABLE S_UNIT DROP CONSTRAINT PK_S_UNIT;
ALTER TABLE S_UNIT ALTER COLUMN ID varchar(32) not null;
alter table S_UNIT add constraint PK_S_UNIT primary key(ID);


如果其它表的外键是这个主键的话,要先删除这个表的外键关联
ALTER TABLE S_HONOR DROP CONSTRAINT FK_S_HONOR__S_UNIT;

然后修改变的外键所对应的字段
ALTER TABLE S_HONOR ALTER COLUMN UNIT_ID varchar(32);

最后添加外键关联
alter table S_HONOR add constraint FK_S_HONOR__S_UNIT foreign key(UNIT_ID) references S_UNIT(ID) ON DELETE CASCADE;

[size=xx-small]ORACLE数据库修改[/size]

先删除主键,然后修改主键对应字段的类型,最后从新添加主键
ALTER TABLE S_UNIT DROP CONSTRAINT PK_S_UNIT;
ALTER TABLE S_UNIT MODIFY ID varchar(32);
alter table S_UNIT add constraint PK_S_UNIT primary key(ID);

如果其它表的外键是这个主键的话,要先删除这个表的外键关联
ALTER TABLE S_HONOR DROP CONSTRAINT FK_S_HONOR__S_UNIT;

然后修改变的外键所对应的字段
ALTER TABLE S_HONOR MODIFY UNIT_ID varchar(32);

最后添加外键关联
alter table S_HONOR add constraint FK_S_HONOR__S_UNIT foreign key(UNIT_ID) references S_UNIT(ID) ON DELETE CASCADE;


注意:oracle修改字段的时候,如果里面有值的话,要先就行处理
alter table S_LOGIN_LOG add temp_id varchar(32);
update S_LOGIN_LOG set temp_id=id;
alter table S_LOGIN_LOG drop column id;
alter table S_LOGIN_LOG rename column temp_id to ID;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值