如何修改資料庫主鍵

2021-04-01 22:00:14 字數 832 閱讀 4399

以前寫了乙個系統,某張表a定義了乙個主鍵比如欄位名為name,該字段又作為另外一張表b的外部關鍵字,以前系統中是不能修改表a的主鍵的,現在有一特殊的要求,在不變更以前資料庫表結構的情況下需要能夠修改表a的主鍵,請問有什麼變通的實現方法?

在sql中可以設定為級聯更新,或自己寫乙個觸發器來同步修改。

觸發器方式:

create trigger trg_a

on a

for update,delete

asbegin

if exists(select 1 from inserted)

update b set name=(select name from inserted) where name=(select name from deleted)

else

delete b where name=(select name from deleted)

endgo

級聯更新和級聯刪除方式:

alter table [dbo].[t_usergroup] add

constraint [fk_t_usergroup_t_accttemplate] foreign key

([atname]

) references [dbo].[t_accttemplate] (

[atname]

)on update cascade

對於外部關鍵的可以採用此方法

補充: sql資料庫支援級聯更新和級聯刪除,

oracle不支援級聯更新(為了避免死鎖的問題吧可能),支援級聯刪除,如果需要實現級聯刪除只能通過觸發器方式來實現

如何修改資料庫密碼

第一步 以管理員身份執行命令提示符 第二步 找到mysql當前目錄,複製 如我的路徑是 c program files mysql mysql server 5.5 bin 第三步 通過輸入命令 cd 路徑 進入mysql的bin目錄 第四步 輸入命令 mysql u root p 指定使用者登入m...

修改資料 如何批量修改資料庫中的資料

如何在資料庫中動態刪除和建立資料表 第14講 在已有的資料表中刪除 新增 修改欄位的方法 第21講 根據工作表中的資料,生成資料庫中新的資料表的方法 第22講 向乙個已有的資料表中新增資料記錄的方法 第23講 把工作表中提供的資料在資料表中逐一刪除 可以是重複的記錄 的通用方法 第24講 把工作表中...

修改資料庫

改資料庫庫名稱 alter database 資料庫名稱 modify name 新資料庫名稱 或exec sp renamedb 資料庫名稱 新資料庫名稱 擴大資料庫 alter database語句擴大資料庫 alter database studentsys add file name stu...