sql语句如何修改主键,请举个小例子.

如题一楼的不对,我试了下:表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.我用语句altertabledepartd... 如题
一楼的不对,我试了下:
表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.
我用语句alter table depart drop constraint 部门号
提示错误:部门号不是约束.
请就这个题目编一个吧.能通过的程序.谢谢.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????
展开
 我来答
评美
推荐于2017-11-26 · 打造全网时尚美丽美妆前沿
评美
采纳数:424 获赞数:1172

向TA提问 私信TA
展开全部
如果表之前有主键则先删除:

alter table 表名 drop constraint 主键名

修改主键:

alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)

注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。

主键的值也可以改变,级联更新是有用的

参考资料: http://www.rs100.cn

百度网友c5f275c
2008-08-21 · TA获得超过1842个赞
知道小有建树答主
回答量:646
采纳率:50%
帮助的人:815万
展开全部
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????

你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了

不能在可以为空的字段上创建primary key约束的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c5net
2008-08-21 · TA获得超过322个赞
知道小有建树答主
回答量:829
采纳率:0%
帮助的人:391万
展开全部
你检查一下!
语法是没错的,只不过你的主键约束名不是那个!你仔细检查一下!这个也没什么好复杂的,就是约束名不对才这样。

关于你的问题补充2:
你先要有清楚的概念,什么叫主键??!!主键当然不能为空了!所以你只要把该字段改为“是否可为空”为“否”即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友54da795
2018-05-11
知道答主
回答量:1
采纳率:0%
帮助的人:871
展开全部
主键名和列名不一样,需要select constraint_name from user_cosntraints where table_name='TABNAME';
再用drop constraint 后面跟上查好的主键名删除约束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wasd_521
2018-09-06 · TA获得超过277个赞
知道答主
回答量:82
采纳率:100%
帮助的人:37.6万
展开全部
  1. 查找主键名称,直接点击右边表下面的“键”(或者右键点击表,选择设计,右键点击任意列名,选择索引/键,这里就可以查看默认主键名称)

  2. use database

    go

    alter table depart

    drop constraint 查询出来的主键名 --至此删除主键完毕

  3. alter table depart

    alter column 部门名 varchar(20) not null --修改部门名非空

  4. alter table depar

    add constraint 自己设置的主键名 primary key (部门名称)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式