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 就行,但是要避免主鍵值和表中現有數據沖突。 另,如果有其它表用該表主鍵做外鍵的話,也不能隨便修改主鍵值"