sql约束名

在复习SQL的时候遇到了约束名这个知识点,网上搜了之后推荐的是一个06年的答案…
现在先把相关知识记下来,以后忘了能直接查找。

约束名是什么

就是给约束起个名字。 比如说:

ALTER TABLE test ADD CONSTRAINT key_name UNIQUE(id);

这其中的key_name就是约束名。

约束名使用场景举例:

添加唯一约束的语句结构如下:
ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
比如:

ALTER TABLE test ADD CONSTRAINT key_name UNIQUE(id);

这就用到了约束名,其中约束名是可以省略不写的,系统会自动生成一个约束名。

约束名有什么用

方便你查找到这个约束,然后就可以执行相关约束的操作。比如说删除约束的时候就要用到约束名。
ALTER TABLE <表名> DROP INDEX <唯一约束名>;

ALTER TABLE test  DROP INDEX key_name; 

如何查找到系统生成的约束名

用如下语句:

show create table <表名>;

比如说用show create table test;语句查看test表的结构,然后就可以看到相关约束名。
执行结果
最后,如有不足之处,请多指正。

SQL中,查询默认值约束(也称为 DEFAULT 或 NOT NULL 约束)通常涉及到数据库系统的系统表或元数据信息。具体的步骤可能会因所使用的数据库管理系统(DBMS)而异,但以下是一些通用的方法: 1. **对于Oracle**: - 使用`ALL_CONS_COLUMNS`或`USER_CONS_COLUMNS`视图可以查看列级别的约束信息,包括默认值。 ```sql SELECT column_name, constraint_name FROM all_cons_columns WHERE table_name = 'your_table_name' AND constraint_type = 'P'; ``` 或者 ```sql SELECT column_name, constraint_name FROM user_cons_columns WHERE table_name = 'your_table_name' AND constraint_type = 'P'; ``` 2. **对于MySQL**: 可以通过`INFORMATION_SCHEMA.COLUMNS`表来获取这个信息: ```sql SELECT COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name' AND IS_NULLABLE = 'NO'; ``` 3. **对于SQL Server**: 可以查阅 `sys.default_constraints` 和 `sys.columns` 系统视图: ```sql SELECT c.name AS ColumnName, d.name AS DefaultValueConstraintName FROM sys.columns c INNER JOIN sys.default_constraints d ON c.object_id = d.parent_object_id AND c.column_id = d.parent_column_id; ``` 4. **对于PostgreSQL**: 使用`pg_attribute`和`pg_constraint`系统表: ```sql SELECT attname, conname FROM pg_attribute JOIN pg_constraint ON conrelid = attrelid WHERE contype = 'd' AND attnum = attnumber AND attrelid IN ( SELECT oid FROM pg_class WHERE relname = 'your_table_name' ); ``` 在查询之前,请将`'your_table_name'`替换为你要检查的实际表。如果你需要查看所有表的默认值约束,可能需要遍历所有表。每个数据库系统都有其特定的API或查询语法,以上只是提供了一些基本的指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值