如何修改表字段主键

anteaus 2009-04-22 11:10:41
现在是我有个表名为aa
ID为主键

现在我想插入一条数据,但又不想使用ID自增值

通过UPDATE aa set id=7 where id=9
改不了
所以我想先取消主键再update

还有个问题就是更新完毕好,再把ID改为主键又怎么操作
...全文
259 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_i_u123 2011-12-06
  • 打赏
  • 举报
回复
取消主键:alter talbe aa drop primary key;
再加为主键:alter table aa modify(id int primary key);
GeekZFZ 2009-04-23
  • 打赏
  • 举报
回复
学习中
hjianke 2009-04-22
  • 打赏
  • 举报
回复
不知道楼主这么做的原因是什么啊
superhsj 2009-04-22
  • 打赏
  • 举报
回复
e...ls说的有理
willflyz 2009-04-22
  • 打赏
  • 举报
回复
建议你不要这么做,主键的值是不能重复的,你这样更新可能使主键的值重复,就算你删除了或者Disable了主键,如果出现重复的值你就改不回来了.
UPDATE aa set id=7 where id=9 这句改不了应该是id=7的记录已经存在了,
superhsj 2009-04-22
  • 打赏
  • 举报
回复
不知道名字的话,可以查数据字典
select constraint_name,constraint_type
from user_constraints
where table_name='表名字' and constraint_type='P';
superhsj 2009-04-22
  • 打赏
  • 举报
回复
删了重建吧
alter table table drop constraint name;
cheng_fengming 2009-04-22
  • 打赏
  • 举报
回复
好像不能修改表的主键吧?
IT农夫 2009-04-22
  • 打赏
  • 举报
回复
取消主键:
得到PK 约束的名称
select constraint_name,constraint_type
from user_constraints
where table_name='大写的表名字' and constraint_type='P';
使约束无效:
alter table 表名 disable constraint 约束的名称;

改完后再update,这一步是能够成功的。

恢复约束,同样会失败
alter table 表名 enable constraint 约束的名称;

上面提供的是操作步骤,但是正像楼上各位所说的那样,
楼主这样做,为什么呢?
白发程序猿 2009-04-22
  • 打赏
  • 举报
回复
id=7已经存在了,自定就更新不了
既然已经设定了主键
不管做啥操作就按照主键的约束来就行了
不知道楼主想干啥

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧