當前位置:首頁 » 編程語言 » 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);
好瞭然後你喜歡刪除哪個表就刪除哪個表吧