sql修改主键
1. sql语句如何修改主键字段的字段类型类型
首先,修改主键字段的字段类型,肯定是要先删除主键才能操作的
--【1.查找主键】
--SQLSERVER
select name as pkName from dbo.sysobjects where xtype='PK' and parent_obj=(select id from dbo.sysobjects where name='表名')
--ORACLE
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = UPPER('表名') AND CONSTRAINT_TYPE ='P'
--【2.删除主键约束】
ALTER TABLE 表名 DROP CONSTRAINT 约束名
--ORACLE
--删除主键连同索引
ALTER TABLE 表名 DROP CONSTRAINT 约束名 CASCADE DROP INDEX;
或者
ALTER TABLE 表名 DROP PRIMARY KEY CASCADE DROP INDEX;--【3.修改字段】
--【先把这一列的值备份到临时列里,再把这一列update成null,再修改类型,再把数据拷贝回来】
--SQLSERVER
--默认值单独处理,关联约束
--默认值的变更涉及到约束,如有约束,需要先查询出越是再进行删除
ALTER TABLE 表名 DROP CONSTRAINT 约束名
ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型(长度精度) 是否为空
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 字段名
--ORACLE
--删除默认值:default null
ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR2(20) DEFAULT ' ' NOT NULL--【4.新增主键】
--指定主键名字
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (F1,F2);
--未指定主键名字
ALTER TABLE 表名 ADD PRIMARY KEY (F1,F2)
2. sql server 2000如何修改主键字段
最简单的方法是用企业管理器直接修改数据类型。 如下是使用T-SQL(SQL 2000)修改的语句:
alter table TableName drop constraint PK_TableName --PK_TableName原主键名称,删除原来的主键
go
alter table TableName alter column [username] varchar(10) not null --修改数据类型
go
alter table TableName add constraint PK_TableName primary key clustered([username]) --重新创建主键
3. SQL表主键可不可以修改update
ifobject_id('primarytbl')isnotnull
droptableprimarytbl
go
--建主表
createtableprimarytbl
(
IDintprimarykey,--主键
aaint,
bbint,
ccint
)
go
ifobject_id('foreigntbl')isnotnull
droptableforeigntbl
go
--建外表
createtableforeigntbl
(
IDintprimarykey,--主键
aaint
(ID)--建立外键
onupdatecascade,--更新级联
ddint,
eeint
)
go
--插入主表数据
insertintoprimarytbl
select1,1,2,3unionall
select2,2,3,4unionall
select3,3,4,5unionall
select4,4,5,6unionall
select5,5,6,7unionall
select6,6,7,8
go
--插入外表数据
insertintoforeigntbl
select1,1,2,2unionall
select2,1,3,3unionall
select3,2,4,4unionall
select4,2,4,4unionall
select5,2,5,5unionall
select6,3,6,6unionall
select7,4,7,7
go
--显示主外表信息
select*
fromprimarytbl
select*
fromforeigntbl
go
--primarytbl
/*
IDaabbcc
--------------------------------------------
1123
2234
3345
4456
5567
6678
--foreigntbl
IDaaddee
--------------------------------------------
1122
2133
3244
4244
5255
6366
7477
*/
--更新主表主键
updateprimarytbl
setID=8
whereID=1
go
--结果
select*
fromprimarytbl
select*
fromforeigntbl
go
/*
--primarytbl
IDaabbcc
--------------------------------------------
2234
3345
4456
5567
6678
8123
--foreigntbl
IDaaddee
--------------------------------------------
1822
2833
3244
4244
5255
6366
7477
*/
droptableforeigntbl
droptableprimarytbl
4. 如何更改SQL数据库中的主键数据
主键就是用来标识每条记录的,它必须具有唯1性,同时它也具有唯1聚集索引的功能,方便查找记录,用主键查找记录是最高效的,但是主键不1定是单唯一列,可以由多列共同组成主键
5. sql,怎么修改主键(原主键未知)
不用删除,直接就是修改。alter table....
6. SQL怎样用命令设置主键
我现在发现使用较少的语句也可以啦,比如:alter
tabler
badd
primary
key(id)将表b中的字段id设为主键这个方法和你的视觉上的效果是一样的,就是不晓得内部是否一样的。
7. sqlyog如何修改主键名称
三种方法:
1.直接写sql语句.
2.用SQLyog 选择外键表 ,点击右键 选择关联/外键,然后再选择主表,外键.
3.在表 vet_specialties 上点击右键 ,然后找到Relationships/ForeignKeys中,然后选择相应的列。
或者直接写命令:
ALTER TABLE vet_specialties ADD FOREIGN KEY FK_SPECIALTY_ID(specialty_id) REFERENCES specialties (id)
ALTER TABLE vet_specialties ADD FOREIGN KEY FK_VET_ID(vet_id) REFERENCES vets (id)
8. sql语句如何修改主键,请举个小例子.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????
你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了
不能在可以为空的字段上创建primary key约束的。。
9. sql --表建好后,想改主键.用sql语句怎样写
分2步,先删除原来的,再建新的
1、ALTER TABLE table_name DROP PRIMARY KEY (id)
说明:把主键的定义删除。
ALTER TABLE table_name ADD PRIMARY KEY (no)
说明:更改表得的定义把no设为主键。
10. 请问如何修改SQL主键列的值
: "可以改,用update 就行,但是要避免主键值和表中现有数据冲突。 另,如果有其它表用该表主键做外键的话,也不能随便修改主键值"