sql语句如何修改主键,请举个小例子.
如题一楼的不对,我试了下:表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.我用语句altertabledepartd...
如题
一楼的不对,我试了下:
表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.
我用语句alter table depart drop constraint 部门号
提示错误:部门号不是约束.
请就这个题目编一个吧.能通过的程序.谢谢.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改????????? 展开
一楼的不对,我试了下:
表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.
我用语句alter table depart drop constraint 部门号
提示错误:部门号不是约束.
请就这个题目编一个吧.能通过的程序.谢谢.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改????????? 展开
展开全部
如果表之前有主键则先删除:
alter table 表名 drop constraint 主键名
修改主键:
alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)
注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。
主键的值也可以改变,级联更新是有用的
alter table 表名 drop constraint 主键名
修改主键:
alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)
注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。
主键的值也可以改变,级联更新是有用的
参考资料: http://www.rs100.cn
展开全部
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????
你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了
不能在可以为空的字段上创建primary key约束的。。
你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了
不能在可以为空的字段上创建primary key约束的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你检查一下!
语法是没错的,只不过你的主键约束名不是那个!你仔细检查一下!这个也没什么好复杂的,就是约束名不对才这样。
关于你的问题补充2:
你先要有清楚的概念,什么叫主键??!!主键当然不能为空了!所以你只要把该字段改为“是否可为空”为“否”即可
语法是没错的,只不过你的主键约束名不是那个!你仔细检查一下!这个也没什么好复杂的,就是约束名不对才这样。
关于你的问题补充2:
你先要有清楚的概念,什么叫主键??!!主键当然不能为空了!所以你只要把该字段改为“是否可为空”为“否”即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主键名和列名不一样,需要select constraint_name from user_cosntraints where table_name='TABNAME';
再用drop constraint 后面跟上查好的主键名删除约束。
再用drop constraint 后面跟上查好的主键名删除约束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
查找主键名称,直接点击右边表下面的“键”(或者右键点击表,选择设计,右键点击任意列名,选择索引/键,这里就可以查看默认主键名称)
use database
go
alter table depart
drop constraint 查询出来的主键名 --至此删除主键完毕
alter table depart
alter column 部门名 varchar(20) not null --修改部门名非空
alter table depar
add constraint 自己设置的主键名 primary key (部门名称)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询