QQ网名大全

SQL在设置约束和索引时,有时会取个名字,请问这个名字是干嘛用的?怎么使用?它存在哪里了?

给约束取名字,   目的是将来你可以比较容易的删除掉.

否则你要自己去查询数据字典表.


例如下面的例子.

唯一约束的名字,  是  t_123,  那么当我不需要这个约束的时候

如果我知道名字, 那么可以直接去删除掉. 


-- 创建测试表.
CREATE TABLE test_123 (
  id   INT,
  value  VARCHAR(10)
);
GO

-- 创建 UNIQUE 约束.
ALTER TABLE test_123
  ADD CONSTRAINT t_123 UNIQUE (value);
GO

-- 删除  UNIQUE 约束.
ALTER TABLE [test_123] 
DROP CONSTRAINT [t_123];
GO



如果我不指定约束名称, 例如:


1> ALTER TABLE test_sub
2>   ADD UNIQUE (value)
3> go



那么这种情况下, 如果我要删除这个约束, 就需要去查询数据字典表。


由于各个数据库厂商的数据字典表各有不同, 下面简单列一些常用的数据库。



Oracle  参考    USER_CONSTRAINTS   视图



SQL Server  

对于 唯一约束, 参考  sys.indexes  视图里面的  is_unique_constraint = 1  的数据

对于外键约束,参考  sys.foreign_keys 视图里面的数据

对于 Check约束, 参考 sys.check_constraints 视图里面的数据




对于 MySQL

可以参考  INFORMATION_SCHEMA.TABLE_CONSTRAINTS  里面的数据。

佚名
2024-06-07 17:39:19
最佳回答
类似问题(10)