暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第 14 天-列存表的约束与拷贝

原创 Carton 2022-12-07
841

1. 表的约束

  • 约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成功插入或更新。如果存在违反约束的数据行为,行为会被约束终止。
  • 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
  • 一些约束既可以是表级约束,又可以是列级约束
  • 列存表的表级约束只支持PARTIAL CLUSTER KEY UNIQUE PRIAMRY KEY不支持外键等表级约束
  • 列存表的字段约束只支持NULL NOT NULL和DEFAULT常量值、UNIQUEPRIMARY KEY

1.1 表级约束

create table test( id integer, name varchar(20); age integer, primary key(id) );

1.2 列级约束

create table test2( id integer primary key, name varchar(20) not null, age integer unique );

2. 表的拷贝

💡 注意简单的语句不能拷贝表的约束

  • 拷贝表的数据和结构
create table test as select * from test2;
  • 只拷贝表的结构
create table test as select * from test2 where 1=2;

3.每日sql语句

--查看表的结构(包括属性和约束) \d table_name --查看指令的帮助 \h statement_name

CREATE TABLE AS创建一个表并且用来自SELECT命令的结果填充该表。该表的字段和SELECT输出字段的名称及数据类型相关。不过用户可以通过明确地给出一个字段名称列表来覆盖SELECT输出字段的名称。

--creat table as 根据查询结果创建表。 create table test as select * from test2 where 1=2;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论