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命令,执行时服务器以及工具会返回相应的报错,工具报错结果如下:
服务器报错结果如下: