我創造了在Oracle 10g中的表如下:如何刪除未命名的主鍵約束
CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY,
StudName VARCHAR2(40)
);
現在想刪除studId主鍵不刪除此列。 我搜索了一下,發現 Dropping unnamed constraints 但它也幫不了我。無法獲取sys.columns表或視圖。
感謝
我創造了在Oracle 10g中的表如下:如何刪除未命名的主鍵約束
CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY,
StudName VARCHAR2(40)
);
現在想刪除studId主鍵不刪除此列。 我搜索了一下,發現 Dropping unnamed constraints 但它也幫不了我。無法獲取sys.columns表或視圖。
感謝
alter table studenttbl drop primary key;
更多細節的手冊中:http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#i2103997
(?這是什麼tbl
後綴聽起來像一個可怕的命名約定)
您鏈接到ISN的問題對甲骨文來說。系統視圖USER_CONSTRAINTS有一個所有約束的列表。 CONSTRAINT_TYPE列中的P表示它是主鍵;你可以利用這個來找到其他約束條件。
您可以使用此視圖來生成刪除約束(或查看其他信息)所必需的DDL。
例如:
CREATE TABLE studentTbl(
studId VARCHAR2(20) PRIMARY KEY,
StudName VARCHAR2(40)
);
Table created.
select 'alter table ' || table_name
|| ' drop constraint ' || constraint_name || ';'
from user_constraints
where table_name = 'STUDENTTBL'
and constraint_type = 'P';
'ALTERTABLE'||TABLE_NAME||'DROPCONSTRAINT'||CONSTRAINT_NAME||';'
----------------------------------------------------------------------
alter table STUDENTTBL drop constraint SYS_C0017725;
是的,你是對的。但我的觀點ws同樣邏輯的事情,我試圖找到這個約束名稱。 BT無法獲取它。謝謝你的幫助。不能投票。 –
感謝a_horse_with_no_name!它解決了我的問題。 –