sql 刪除帶外鍵約束的表的語句是什么
擁有主鍵的表稱為主表,擁有外鍵的表稱為從表,從表可以直接刪除,不受限制,但主表無法在從表還存在的情況下直接刪除。
另外,根據樓主的意思,我猜想你可能想問的是有外碼關聯的數據刪除的問題。以下簡述:通常情況下,從表中外鍵所在字段的數據取值只能取主鍵中存在的值或者取空值,從表中的數據可以隨時刪除,而主表中的數據如果被從表所參照,則不能直接刪除,如果想直接刪除主表中被參照的數據,需要在創建外鍵時指定ON DELETE CASCADE或者ON DELETE SET NULL,即FOREIGN KEY(從表中的某個字段) REFERENCES 主表(主鍵) ON DELETE CASCADE或者FOREIGN KEY(從表中的某個字段) REFERENCES 主表(主鍵) ON DELETE SET NULL其中第一種方法表示刪除主表中的數據時,從表中對應數據一起被強制刪除;第二種方法表示刪除主表中的數據時,從表中對應數據設置為NULL最后要注意的一點,這兩個短語并非所有數據庫管理系統都支持,印象中DB2、Oracle和SQL Server都支持,MySQL沒試過,不知道你用哪種數據庫,最好在你的系統中親自試一下。
以上僅供參考。
sql 刪除帶外鍵約束的表的語句是什么
擁有主鍵的表稱為主表,擁有外鍵的表稱為從表,從表可以直接刪除,不受限制,但主表無法在從表還存在的情況下直接刪除。
另外,根據樓主的意思,我猜想你可能想問的是有外碼關聯的數據刪除的問題。以下簡述:
通常情況下,從表中外鍵所在字段的數據取值只能取主鍵中存在的值或者取空值,從表中的數據可以隨時刪除,而主表中的數據如果被從表所參照,則不能直接刪除,如果想直接刪除主表中被參照的數據,需要在創建外鍵時指定ON DELETE CASCADE或者ON DELETE SET NULL,即
FOREIGN KEY(從表中的某個字段) REFERENCES 主表(主鍵) ON DELETE CASCADE
或者
FOREIGN KEY(從表中的某個字段) REFERENCES 主表(主鍵) ON DELETE SET NULL
其中第一種方法表示刪除主表中的數據時,從表中對應數據一起被強制刪除;
第二種方法表示刪除主表中的數據時,從表中對應數據設置為NULL
最后要注意的一點,這兩個短語并非所有數據庫管理系統都支持,印象中DB2、Oracle和SQL Server都支持,MySQL沒試過,不知道你用哪種數據庫,最好在你的系統中親自試一下。
以上僅供參考。
mysql 刪除約束 的SQL語句
用alter table語句:
完整用法:
ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] 。
alter_specification:
table_option 。
| ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
| ADD [COLUMN] (column_definition,。)
| ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,。)
| ADD [CONSTRAINT [symbol]]
PRIMARY KEY [index_type] (index_col_name,。)
| ADD [CONSTRAINT [symbol]]
UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,。)
| ADD [FULLTEXT|SPATIAL] [INDEX|KEY] [index_name] (index_col_name,。)
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,。)
[reference_definition]
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
| CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP {INDEX|KEY} index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name
| ORDER BY col_name [, col_name] 。
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
| DISCARD TABLESPACE
| IMPORT TABLESPACE
index_col_name:
col_name [(length)] [ASC | DESC]
index_type:
USING {BTREE | HASH}
刪除 主鍵 和外鍵約束:
ALTER TABLE mytablename
DROP PRIMARY KEY
DROP FOREIGN KEY fk_symbol;
還有就是怎么樣查詢 約束;
你可以通過查看該表的 創建語句來 查看 約束:
SHOW CREATE TABLE mytablename;
得到ddl語句;
解除外鍵約束的sql語句
-- 創建測試主表. ID 是主鍵.CREATE TABLE test_main ( id INT, value VARCHAR(10), PRIMARY KEY(id) );-- 創建測試子表. CREATE TABLE test_sub ( id INT, main_id INT, value VARCHAR(10), PRIMARY KEY(id) );創建外鍵:ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;暫時 停用 外鍵約束ALTER TABLE test_sub NOCHECK CONSTRAINT main_id_cons;重新啟用外鍵約束ALTER TABLE test_sub CHECK CONSTRAINT main_id_cons;刪除外鍵ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;。
數據庫中怎樣刪除約束
數據庫中刪除約束的方法:1、sql server中刪除約束的語句是:alter table 表名 drop constraint 約束名sp_helpconstraint 表名 找到數據表中的所有列的約束2、oracle中刪除約束的語句:先找到表的約束名稱,執行:select * from user_constraints; 其中 CONSTRAINT_NAME 為表的約束名稱然后刪除約束: alter table 表名 drop constraint 約束名 cascade;3、mysql中刪除約束的語句是:1)刪除主鍵約束:alter table 表名 drop primary key;2)刪除外鍵約束:alter table 表名 drop foreign key 外鍵(區分大小寫);。
sql server怎樣刪除外鍵約束
x先找出約束名字然后刪除它我給個例子--測試環境--主表create table test1(id int primary key not null,value int)insert test1 select 1,2go--從表create table test2(id int references test1(id),value int)go--第一步:找出test2表上的外鍵約束名字--2000exec sp_helpconstraint 'test2'--可以在constraint_name 屬性中找到外鍵約束名字--2005select name from *n_key_columns f join *s o on *aint_object_id=*_id where *_object_id=object_id('test2')/*name---------------------------------FK__test2__id__08EA5793*/--第二步:刪除外鍵約束alter table test2 drop constraint FK__test2__id__08EA5793 --第三步:檢查表上是否還有外鍵約束--只要使用第一步里面的查找語句即可。
轉載請注明出處華閱文章網 » mysql刪除外鍵約束語句