达梦数据库表字段主键、唯一性、非空设置与反设置
前言:
达梦数据库表字段涉及到表的主键问题,需要设置主键、非空等特性。
总结:
1、修改数据表字段类型和长度
--设置字段类型和长度
alter table "SYSDBA"."MY_TABLE" modify "ID" VARCHAR2(50);
2、增加和去除唯一性设置
注意:唯一性与主键互斥,只能选其一。获取唯一性约束的KEY,参见后面的语句。
--增加唯一
alter table "SYSDBA"."MY_TABLE" add constraint U_ID unique(id);
--去掉唯一
alter table "SYSDBA"."MY_TABLE" drop constraint U_ID ;
3、设置可空或不可空特性
--可空
alter table "SYSDBA"."MY_TABLE" alter column "ID" set null;
--非空
alter table "SYSDBA"."MY_TABLE" alter column "ID" set not null;
4、增加主键和去除主键
--增加主键
alter table "SYSDBA"."MY_TABLE" add primary key("ID");
--去掉主键
alter table "SYSDBA"."MY_TABLE" drop constraint "CONS134237151";--主键ID的获取参见第7条
alter table "SYSDBA"."MY_TABLE" alter column "ID" set null;
5、查询数据库中的表
SELECT * FROM ALL_TABLES; --查询表
6、查看数据表定义
SELECT TABLEDEF('SYSDBA','MY_TABLE'); --查看表定义,入参:模式名,表名
7、查看表具有的约束
--查看所有主键约束
SELECT * FROM ALL_CONSTRAINTS WHERE CONSTRAINT_TYPE='P';
--所有约束种类
SELECT DISTINCT CONSTRAINT_TYPE FROM ALL_CONSTRAINTS;
CONSTRAINT_TYPE取值:
C:检验约束
P:主键约束
U:唯一性约束
R:外键约束
V:未知(编者注)
--查看某张表所有约束
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME='MY_TABLE';