当前位置:首页 » 编程语言 » sql怎么删除主键关系和子表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql怎么删除主键关系和子表

发布时间: 2022-07-23 08:02:27

sql主键删除语句

alter table mytable2 drop constraint 主键的名称
这里的主键名称并不是你的列名id,你可以执行以下语句查看
select name from sys.indexes where object_id=object_id('mytable2')
and is_primary_key=1

如何删除sql server中的 外键 主键

先删外键、后删主键
ALTER
TABLE
表名
DROP
CONSTRAINT
约束名
约束名你自己定义的、如果不知道、
可以输入违反约束的数据、下面会提示违反的约束名字、直接粘贴到上面语句

Ⅲ sql 中两表有主外键关系,如何删除主表中数据,而要保留子表数据

如果只是为了保留子表中的具体数据,可以先把对应的记录插入到一个备份表中,再删除主表记录,此时原子表中对应记录也会被删除,但可以在备份表中查到。
如果是要把数据仍保存在子表中,就只能先撤消主外键关系再删除主表中记录了。当然,也可以在主表建个新的主键值,把子表对应要删除的记录的主键值改为这个新值,再删主表中原主键记录。

Ⅳ 怎么用一天sql 语句删除 主表信息和对应的从表信息

-- 创建外键(使用 ON DELETE CASCADE 选项,删除主表的时候,同时删除子表)

ALTER TABLE 学生表

ADD CONSTRAINT FK_学生班级

FOREIGN KEY (班级ID) REFERENCES 班级表 ON DELETE CASCADE;

也就是, 只要你那个外键, 是 ON DELETE CASCADE 的。

那么当你

DELETE FROM 班级表 WHERE 班级 = '一班' 的情况下。


数据库会自动把 外键关联的 一班下面的学生, 自动删除掉。


下面是一个模拟的例子:


--创建测试主表.ID是主键.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--创建测试子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入测试主表数据.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入测试子表数据.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');

1>--创建外键(使用ONDELETECASCADE选项,删除主表的时候,同时删除子表)
2>ALTERTABLEtest_sub
3>ADDCONSTRAINTmain_id_cons
4>FOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;
5>
6>--测试删除主表数据.将成功地执行.
7>DELETE
8>TEST_MAIN
9>WHERE
10>ID=1;
11>
12>--测试检索子表,应该只有一条main_id=2的数据.
13>SELECT
14>*
15>FROM
16>test_sub;
17>
18>go

(1行受影响)
idmain_idvalue
--------------------------------
22TWOTWO

(1行受影响)

Ⅳ SQL中命令如何实现删除主键

不能删?那不就是对“犯错”没有纠正的机会,在表没有和其他表建立联系甚至是一张空表中,我感觉是应该可以删除主键并重新设置的,因为在网上看到过这样的言论但是没有提及具体的操作方法。

Ⅵ sql如何删除主键

删除主键约束方法

  1. 在服务器资源管理器中,选择包含该主键的表,再从“数据”菜单中单击“打开表定义”。该表在“表设计器”中打开。

  2. 在表网格中右击包含该主键的行,然后选择“移除主键”以将该设置从启用切换到禁用。

说明:若要撤消此操作,请关闭该表而不保存更改。 删除主键的操作无法在不丢失对该表作出的其他所有更改的情况下撤消。当保存表或关系图时,将从数据库中删除约束。

Ⅶ sql语句如何删除主键

(1)如图:删除下面uid主键
语句:ALTER
TABLE
`6h_360_pay`
DROP
PRIMARY
KEY;
”6h_360_pay“是表名;
(2)如下图,再创建一个长度为11的int的类型、自增、且不为空的字段id为主键
语句:ALTER
TABLE
`6h_360_pay`ADD
COLUMN
`id`
int(11)
NOT
NULL
AUTO_INCREMENT
FIRST
,ADD
PRIMARY
KEY
(`id`);

Ⅷ 用sql语句如何去掉一个表的主键

create table ( id int identity(1, 1) not null primary key, other_column varchar(50))-- 对表设置主键的同时,数据库会自动的创建一个以主键作为名称的唯一索引的。

Ⅸ sql语句从主表删除一条数据,并且把先关联的多个子表数据也删除

仅凭sql不可能实现,多条实现先删从表再删主表
楼主的需求解决方案
1.如果是编程实现,java框架hibernate的cascade可以模拟做到删主去重
2.表中设置好级联删除 这样设定好表后 可以实现删主去重 oracle为例
alter table AAA add constraint asd foreign key (BBB) references CCC(DDD) on delete cascade;
3.新增delete的行级触发器

4.存储过程 包含多条delete语句,使用时调用该过程

Ⅹ 删除有主外键关系的表的sql语句怎么写谢谢

你的意思是删除主外键这个约束吧?还是删除这个表?你可以先删除这个约束 然后随便你删除哪个表都不影响了
1、先查出这个表的约束名字
select constraint_name from user_constraints WHERE table_name ='表名';--得到约束名字
2、把这个约束名字放在下面的语句里 删除约束
alter table table_name drop constraint 约束名(cascade);
好了然后你喜欢删除哪个表就删除哪个表吧