当前位置:首页 » 编程语言 » 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”选项选择“设击”。