[转帖]在KingbaseES数据库中批量创建数据库/表

kingbasees,数据库,批量,创建 · 浏览次数 : 0

小编点评

**1. 批量创建表和库的步骤:** - 使用 `for` 循环遍历一个数字序列。 - 在每个循环中,使用 `ksql` 脚本创建数据库和表。 - 使用 `create database database$i` 创建数据库 `database$i`。 - 使用 `create table test_tasa_$i` 创建表 `test_tasa_$i`。 **2. 通过 shell脚本实现:** ```shell #!/bin/bash # 设置数据库用户名 user=system # 设置数据库服务器端口 port=54587 # 设置数据库名称 dbname=test # 设置 ksql 脚本路径 path=/home/tma/gyj/C5oracle/Server/bin/ksql # 设置循环次数 i=1 # 创建数据库 for i in {1..$i}; do $path -U$user -p$port -d$dbname -c "create database database$i;\" done # 创建表 for i in {1..$i}; do create database database$i done ``` **3. 通过 SQL 查询语句实现:** ```sql DECLARE i INT := 1; BEGIN FOR a IN 1..2 LOOP EXECUTE IMMEDIATE 'CREATE TABLE test_tasa_'|| i ||' (a INT PRIMARY KEY,b VARCHAR(20) NOT NULL,c DATE DEFAULT sysdate,d INT UNIQUE)'; i := i+1; END LOOP; END; ```

正文

1. 问题

如何在KingbaseES中批量创建表和库?

2. 通过shell脚本文件实现

有时候我们在进行测试的时候需要进行批量的建库以及建表,这时我们可以使用shell脚本实现或者是SQL实现,shell脚本实现时内容如下:

user=system

#用于配置数据库的用户名

port=54587

#用户配置数据库服务的端口

dbname=test

#用于配置需要连接的库

path=/home/tma/gyj/C5oracle/Server/bin/ksql

#配置ksql脚本的绝对路径

for i in {1..2}

do

$path -U$user -p$port -d$dbname -c “create database database$i;"

done

#使用循环创建表\库

create database database$i

此处为了我们方便查看,脚本就设置为执行2次,当然你可以执行XX次,只要修改i的循环范围即可,当然你也可以修改双引号中的内容修改为创建表,即可批量创建表,执行脚本时,创建的对象就变为了创建表,这里我们将双引号中内容进行修改后,分别执行,执行结果如下:

 

3. 通过SQL查询语句实现循环创建表

之前我们通过shell脚本实现了创建表,同理我们也可以通过SQL编辑器实现

批量创建表。代码如下:

DECLARE

i int := 1;

BEGIN

FOR a in 1..2 LOOP

EXECUTE IMMEDIATE 'CREATE TABLE test_tasa_'|| i ||' (a int PRIMARY KEY,b varchar(20) NOT NULL,c DATE DEFAULT sysdate,d int UNIQUE)';

i := i+1;

END LOOP;

END;

执行结果如下:

当然你可以将代码放入存储过程中,需要执行时,调用存储过程即可。

但是创建数据库由于KES系统做了处理,函数无法执行create database命令,执行时服务器以及工具会返回相应的报错,工具报错结果如下:

 服务器报错结果如下:

 

文章知识点与官方知识档案匹配,可进一步学习相关知识

与[转帖]在KingbaseES数据库中批量创建数据库/表相似的内容:

[转帖]在KingbaseES数据库中批量创建数据库/表

1. 问题 如何在KingbaseES中批量创建表和库? 2. 通过shell脚本文件实现 有时候我们在进行测试的时候需要进行批量的建库以及建表,这时我们可以使用shell脚本实现或者是SQL实现,shell脚本实现时内容如下: user=system #用于配置数据库的用户名 port=54587

[转帖]KingbaseES 服务器运行参数分类

https://www.cnblogs.com/kingbase/p/16969149.html Kingbase 服务器运行参数分类 说明: KingbaseES 数据库中,服务器运行参数分为多种类型,有些是系统初始化时设置,有些可以在系统运行时设置,有些可以在运行session中进行直接设置。下

[转帖]金仓数据库KingbaseES表空间介绍

1、表空间的概念 KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在KingbaseES中表空间实际上就是给表指定一个存储目录。 2、表空间的作用 通过使用表空间,管理员可以控制一个KingbaseES安装的磁盘布局。 如果初始化集簇所在的分区或者卷用光了空间,

[转帖]金仓数据库KingbaseES表空间(tablespace)知多少

金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等。一旦表空间被创建,那么就可以在创建数据库对象时通过名称来引用他。 一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间sys_defau

[转帖]金仓数据库KingbaseES V8R6 中unlogged表

KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged。和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中。在数据库异常关机或者异常崩溃后该表的数据会被truncate掉,但是在写入性能上会比普通表快几倍。 这个特性类似于or

[转帖]15.1. 插件dblink简介

https://help.kingbase.com.cn/v8.6.7.12/development/sql-plsql/ref-extended-plug-in/dblink.html dblink是KingbaseES的一个扩展插件,支持在一个数据库会话中连接到其他Kingbase数据库的模块。

[转帖]3.3.8. KWR运行期对比报告 KWR DIFF

https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh KWR报告是Diff报告的基础,在数据库运行过程中,通常在业务的高峰期和低谷期,或者在参数调

[转帖]如何在KingbaseES数据库查看数据库和表的大小

关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)

[转帖]如何在KingbaseES数据库查看数据库和表的大小

关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)

[转帖]如何在KingbaseES数据库查看数据库和表的大小

关键字 kingbaseES,数据库大小,表大小 1、查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_size('kapp'); sys_database_size 1685672055(1 行记录)