當前位置:首頁 » 編程語言 » sql刪除外鍵約束數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除外鍵約束數據

發布時間: 2022-03-04 02:35:50

A. sql如何通過外鍵約束實現級聯刪除和更新

設定外鍵為級聯刪除就可以了。
alter table B add constraint fk_ID foreign key (ID) references A(ID) on delete cascade;
這樣只需:delete from A where ID=nnnn; 就可以自動刪除對應B表內容了。

通過外鍵無法實現同步更新。

B. SQL 刪除存在外鍵約束欄位的行怎麼刪

drop connstraint 外鍵名(刪除外鍵)刪除此行信息。然後再把外鍵添加了alter table 表名1add connstraint 外鍵名 foreign key(欄位名) references 表2(欄位名)

C. SQL 問題! 用代碼刪除 外碼約束~~

由於在創建表的過程中沒有指定外鍵約束名稱,SQL SERVER會自動生成外鍵約束名
執行
exec sp_fkeys 課程
在結果集中,將FK_NAME的值復制出來,形如「FK__選課__課程號__50FB042B」
然後執行
alter table 選課
drop constraint FK__選課__課程號__50FB042B」
刪除外鍵約束,
之後就可以刪除「課程」表了。

D. SQL 怎樣刪除有外鍵約束的表

1、自動生成所有的DROP語句,將其中的MyDatabaseName替換成你的資料庫名稱:

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')

FROM information_schema.tables

WHERE table_schema = 'MyDatabaseName';

2、然後,在生成的代碼前後添加下面設置FOREIGN_KEY_CHECKS變數的語句:

SET FOREIGN_KEY_CHECKS = 0

-- DROP語句

SET FOREIGN_KEY_CHECKS = 1;

(4)sql刪除外鍵約束數據擴展閱讀:

外鍵約束可雙擊關系線添加外鍵約束,外鍵約束有四種不同的選項:CASCADE, SET NULL, NO ACTION, RESTRICT。

1、CASCADE : 從父表中刪除或更新對應的行,同時自動的刪除或更新自表中匹配的行。[ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。]

2、SET NULL: 從父表中刪除或更新對應的行,同時將子表中的外鍵列設為空。[注意,這些在外鍵列沒有被設為NOT NULL時才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。]

3、NO ACTION: InnoDB拒絕刪除或者更新父表。

4、RESTRICT: 拒絕刪除或者更新父表。[指定RESTRICT(或者NO ACTION)和忽略ON DELETE或者ON UPDATE選項的效果是一樣的。]

E. ORACLE語句怎麼刪除外鍵約束,只是刪約束,不是刪表

可用sql語句刪除外鍵約束,也可以用其他工具操作(如PL/SQL)。

一、語句刪除:

altertable表名dropconstraint外鍵名;

二、工具刪除:

1、登錄PL/SQL到指定資料庫。

2、左側找到Tables選項。

F. SQL server 刪除全部外鍵

--查出外鍵
select name
from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id('表名')
--刪除外鍵
alter table 表名 drop constraint 外簡名

G. 怎樣刪除存在主外鍵關系的數據,怎樣編寫SQL語句

如果你的表裡面 使用了級聯關系 你刪除主表時 子表也就刪除了。 如果咩有的話 你只能寫where語句比較了之前如果有級聯關系(級聯關系:主鍵執行的操作同時影響外鍵)的話,只需要運行delete 列名 from 表名 where 約束條件

H. sqlserver怎麼刪除有外鍵關聯的數據

--使用SYSREFERENCES
--刪除外鍵
set xact_abort on
begin tran
DECLARE @SQL VARCHAR(99)
DECLARE CUR_FK CURSOR LOCAL FOR
SELECT 'alter table ['+ OBJECT_NAME(FKEYID) + '] drop constraint ' + OBJECT_NAME(CONSTID) FROM SYSREFERENCES
--刪除所有外鍵
OPEN CUR_FK
FETCH CUR_FK INTO @SQL
WHILE @@FETCH_STATUS =0
BEGIN
EXEC(@SQL)
FETCH CUR_FK INTO @SQL
END
CLOSE CUR_FK
DEALLOCATE CUR_FK
-- 刪除所有表
DECLARE CUR_TAB CURSOR LOCAL FOR
SELECT 'DROP TABLE '+ NAME FROM SYSOBJECTS WHERE XTYPE='U' -- AND NAME LIKE 'xx%'
OPEN CUR_TAB
FETCH CUR_TAB INTO @SQL
WHILE @@FETCH_STATUS =0
BEGIN
EXEC(@SQL)
FETCH CUR_TAB INTO @SQL
END
CLOSE CUR_TAB
DEALLOCATE CUR_TAB
commit tran

--使用sys.foreign_keys
--disable and enable 外鍵
這里解釋下 { CHECK | NOCHECK } CONSTRAINT

Specifies that constraint_name is enabled or disabled. This option can only be used with FOREIGN KEY and CHECK constraints. When NOCHECK is specified, the constraint is disabled and future inserts or updates to the column are not validated against the constraint conditions. DEFAULT, PRIMARY KEY, and UNIQUE constraints cannot be disabled.
上面的解釋是,NOCHECK對應於disable, CHECK則對應於enable

select
'ALTER TABLE '+o.name+' NOCHECK CONSTRAINT '+fk.name+';' AS Command
from
sys.foreign_keys fk
JOIN sys.all_objects o ON (fk.parent_object_id=o.object_id)
具體會有多少條記錄,取決於你的資料庫裡面,有多少個外鍵了。

然後復制結果, 粘貼出來執行. 就停用 外鍵約束了.

再刪除數據

數據刪除好了, 再啟用外鍵約束

select
'ALTER TABLE ' + o.name + ' CHECK CONSTRAINT ' + fk.name + ';' AS Command
from
sys.foreign_keys fk
JOIN sys.all_objects o ON (fk.parent_object_id = o.object_id)

和前面的一樣, 把查詢出來的結果, 復制一下, 然後粘貼出來去執行.

--使用sys.foreign_key_columns

--查出外鍵
select name
from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id('表名')
--刪除外鍵
alter table 表名 drop constraint 外簡名

I. sql 刪除帶外鍵約束的表的語句是什麼

1、創建主鍵表,test_class,並建立class_id欄位為主鍵;

create table test_class(class_id number, class_name varchar2(20));

-- Create/Recreate indexes

alter table TEST_CLASS

add constraint P_CLASS_ID primary key (CLASS_ID)

using index

tablespace USERS

pctfree 10

initrans 2

maxtrans 255;

J. 如何用sql語句刪除外鍵約束

用sql語句刪除外鍵約束的具體步驟如下:

我們需要准備的材料分別是:電腦、SQL SERVER 2008。

1、首先我們用SQL SERVER 2008打開需要刪除外鍵約束的表,滑鼠右鍵點擊左側的「dbo」選項選擇「設擊」。