前言

在oracle数据库中,我们可以查看数据字典dba_objects得到表的创建时间。在Kingbase中如何查看表的创建时间呢?Kingbase数据库中无法通过数据字典查看有关信息,但可以通过其他方法实现。

1、通过查找表和数据库的物理文件方式

TEST=# create table test4 (id int primary key);

CREATE TABLE

TEST=#

TEST=# select now();

now

-------------------------------

2023-03-09 11:07:52.575930+08

(1 row)

insert into test4 select generate_series(1,1000);

TEST=# \dt+ test4;

List of relations

Schema | Name | Type | Owner | Size | Description

--------+-------+-------+--------+-------+-------------

public | test4 | table | system | 64 kB |

(1 row)

TEST=# \d test4

Table "public.test4"

Column | Type | Collation | Nullable | Default

--------+---------+-----------+----------+---------

id | integer | | not null |

Indexes:

"test4_pkey" PRIMARY KEY, btree (id)

查看表的物理文件位置

TEST=# select pg_relation_filepath('test4');

pg_relation_filepath

----------------------

base/12145/41214

(1 row)

表test4的创建时间为11:08

[kingbase7@localhost 12145]$ ll 41214

-rw------- 1 kingbase7 kingbase7 40960 Mar 9 11:08 41214

如果表上的relfilenode发生改变,那么我们查看到的表文件创建时间就不准确,

例如:

TEST=# cluster verbose test4 using test4_pkey;

INFO: clustering "public.test4" using index scan on "test4_pkey"

INFO: "test4": found 0 removable, 1000 nonremovable row versions in 5 pages

DETAIL: 0 dead row versions cannot be removed yet.

CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s.

CLUSTER

再查看表的relfilenode改变了,文件的创建时间也变为最新的,这是因为cluster命令根据索引重新组织了表。

TEST=# select pg_relation_filepath('test4');

pg_relation_filepath

----------------------

base/12145/41234

(1 row)

kingbase7@localhost 12145]$ ll 41234

-rw------- 1 kingbase7 kingbase7 40960 Mar 9 11:23 41234

但是通常的alter table 操作不会有表的relfilenode改变这个问题,例如

ALTER TABLE test4 add COLUMN word text;

ALTER TABLE test4 add CHECK (word <> '');

ALTER TABLE test4 rename to test2

查看数据库创建时间:

TEST=# create database test_ty;

CREATE DATABASE

TEST=# select now();

now

-------------------------------

2023-03-08 17:02:15.615326+08

(1 row)

查看数据库oid

TEST=# select oid,datname,dattablespace from pg_database where datname='test_ty';

oid | datname | dattablespace

-------+---------+---------------

41213 | test_ty | 1663

(1 row)

操作系统查看数据库oid 41213创建时间为17:02

[kingbase7@localhost base]$ ll

drwx------ 2 kingbase7 kingbase7 8192 Mar 8 17:02 41213

实际测试以下语法均不会改变数据库的oid。也就是系统查看的数据库最初创建时间不会变。

ALTER DATABASE name RENAME TO new_name;

ALTER DATABASE test_ty owner TO u1;

ALTER DATABASE test_ty RESET ALL;

2,、通过数据库日志查看表,数据库的创建时间。

在配置文件KINGBASE.CONF中加入 log_statement = 'ddl' # none, ddl, mod, all

创建表:

TEST=# select now();

now

-------------------------------

2023-03-09 11:31:03.686769+08

(1 row)

TEST=# create table test_bak as select * from test4;

SELECT 1000

创建数据接:

TEST=# select now();

now

-------------------------------

2023-03-09 11:32:42.028259+08

(1 row)

TEST=# create database test_tx;

CREATE DATABASE

查看数据库日志:

2023-03-09 11:31:04.312 CST [19483] LOG: statement: create table test_bak as select * from test4;

2023-03-09 11:32:42.772 CST [19483] LOG: statement: create database test_tx;

总结:

以上两种方法可以查看数据库和表的创建时间,建议使用第一种方法,避免第二种方法频繁的ddl引起日志大小增加。

第一种方法在使用cluster table后会改变表的relfilenode,进而在操作系统上查到的表的创建时间不是原始创建时间。

KingbaseES 如何查看表的创建时间的更多相关文章

  1. mysql命令 SHOW TABLE STATUS LIKE '%city%'; 查看表的状态可以查看表的创建时间

    show status like '%handler_read_key%'; #走索引的命令的数量. #查看存储引擎 mysql> show variables like '%engine%'; ...

  2. 怎么查看HBase表的创建时间

    前几天HBase出现了RIT告警,忽然发现发出告警的Region所属的表并不是我创建出来的,于是就想看看这些表是怎么来的. 一时也没什么头绪,就先看看这些表是什么时候创建出来的吧,然后再根据时间点看看 ...

  3. MySQL查看数据表的创建时间和最后修改时间

    如何MySQL中一个数据表的创建时间和最后修改时间呢? 可以通过查询information_schema.TABLES 表得到信息. 例如 mysql> SELECT * FROM `infor ...

  4. 修改SQL Server数据库表的创建时间最简单最直接有效的方法

    说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一 ...

  5. JPA注解实体类,给表添加创建时间,更新时间,id的生成以及创建唯一约束

    首先创建一个BaseModel,自动生成创建时间和更新时间 @SuppressWarnings("serial") @MappedSuperclass public class B ...

  6. linux 查看帐号创建时间

    查看用户的home目录的创建时间 查看日志 用stat 命令,可以看到目录的三个时间.不过这个时间只是用来参考的,确定一个范围. 查看日志是最准确的方法 /var/log/auth.log ,前提是你 ...

  7. spring data jpa之Auditing 表的创建时间,更新时间自动生成策略

    java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...

  8. Oracle查看数据库表的创建时间

    select OBJECT_NAME, CREATED from DBA_OBJECTS obj, USER_TABLES tab where obj.OBJECT_NAME = tab.TABLE_ ...

  9. Linux 如何用命令查看binlog文件的创建时间

    目录 背景 分析 方法 注意 背景 MySQL在26日 16:23:49产生了大量的慢查询,在这段时间内,binlog文件刷新的很快(查看慢日志是mysql DML并发比较多),想知道写完一个binl ...

  10. mysql表的创建、查看、修改、删除

    一.创建表 创建表前先使用use 数据库名进入某一个数据库,创建表语句的格式如下: create table 表名称 ( 列名1 列的数据类型 [约束], 列名2 列的数据类型 [约束], 列名2 列 ...

随机推荐

  1. 【Unity3D】表面着色器

    1 前言 ​ 固定管线着色器一.固定管线着色器二 中介绍了 ShaderLib 的基本用法,本文将接着讲解表面着色器(Surface Shader)的用法.固定管线着色器基于 ShaderLib 命令 ...

  2. Java I/O 教程(八) Writer和Reader

    Java Writer Writer是一个用于写字符流的抽象类.其子类必须实现write(char[], int, int), flush(), 和 close()方法. 类定义 public abs ...

  3. Windows系统下的输入法选择

    总共用过5款输入法:搜狗拼音输入法,QQ拼音输入法,谷歌拼音输入法,手心输入法,小狼毫. 搜狗输入法功能最强大,词库也很全,基本上对于盲打的输入纠错很准确,但是因为后台会启动多个服务,会占很多内存资源 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (202)-- 算法导论15.3 1题

    一.对于矩阵链乘法问题,下面两种确定最优代价的方法哪种更高效?第一种方法是穷举所有可能的括号化方案,对每种方案计算乘法运算次数,第二种方法是运行RECURSIVE-MATRIX-CHAIN.证明你的结 ...

  5. OsgEarth开发笔记(二):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(中)

    上一篇:<OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)>下一篇:敬请期待-   前言  上一篇编译了osg和osgCurl ...

  6. python中的泛型使用TypeVar

    引入为什么需要TypeVar PEP484的作者希望借助typing模块引入类型提示,不改动语言的其它部分.通过精巧的元编程技术,让类 支持[]运算不成问题.但是方括号内的T变量必须在某处定义,否则要 ...

  7. python基础安装虚拟环境

    1.pip install virtualenv或者pip3 install virtualenv 2.在要存放虚拟环境的地方创建一个venv文件夹,用来存放所有创建的虚拟环境,方便查找与管理 3.m ...

  8. 【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?

    问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口 ...

  9. 【译】32位 .NET Framework 项目的 WinForm 设计器选择

    在客户反馈的推动下,Visual Studio 2022 向64位架构过渡,标志着增强开发体验的关键一步.正如 Klaus Loffelmann 在他的博客文章中所描述的那样,这种转换增强了整体性能和 ...

  10. Go语言VSCode开发环境配置

    最近学习Golang,先把开发环境配置好. 一.安装Go语言开发包 https://golang.google.cn/dl/ 按步骤安装即可,安装完成后需要设置Windows环境变量 配置好,做个测试 ...