前言
Navicat 作为一款强大的数据库管理工具,始终致力于为开发者提供高效、便捷的数据操作体验。Navicat Premium 自 17.3 版本起,已正式支持 KingbaseES V8 及以上版本,可全面满足该数据库的管理与开发需求。

Navicat 下载安装
Navicat Premium V17.3 下载地址:https://www.navicat.com.cn/download/navicat-premium
下载后双击打开进行安装:







安装完成后双击打开(14天免费试用):

一打开映入眼帘的就是新增国产数据库的支持:

还有 AI 助手:

但是不是内置的 AI 大模型,需要自行提供 API:

sk-5bb0211b3e02499780daa34edd090d16


参考:Navicat x 金仓 KingbaseES 快速入门指南 文档,可以快速连接金仓数据库。


双击连接数据库,新建查询:


AI 助手需要再设置中启用:


新建模式:

新建数据库(这里建议加载Kingbase数据库的创建默认值):

备份数据库:

点击开始就能开始备份:

保存为一个备份任务:

设置任务计划:



新建一张表:

数据生成功能:

选择一个模式后进行下一步,设置字段属性:



如果有多个表,表之间有主外键关联的,还可以选择表生成顺序进行生成,这个设计还是比较友好的!


简单的数据生成是没有问题的,我来试试复杂逻辑的数据生成是否可以正常支持:
-- 基本信息表
-- 包含基本的数据类型,如数字、字符串、日期等;包含主键和唯一约束。
CREATE TABLE Basic_Info (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3),
gender CHAR(1) CHECK (gender IN ('M', 'F')),
birth_date DATE,
email VARCHAR2(100),
phone VARCHAR2(20) UNIQUE
);
-- 订单信息表
-- 使用 TIMESTAMP 数据类型,以测试时间相关字段的迁移;包含检查约束 CHECK 以测试迁移时的约束兼容性。
CREATE TABLE Orders (
order_id NUMBER(10) PRIMARY KEY,
customer_id NUMBER(10) NOT NULL,
order_date TIMESTAMP,
amount NUMBER(12, 2),
status VARCHAR2(20) CHECK (status IN ('PENDING', 'COMPLETED', 'CANCELED'))
);
-- 客户信息表
-- 包含 DEFAULT 值,测试默认值的迁移;TIMESTAMP 类型的默认当前时间字段。
CREATE TABLE Customers (
customer_id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
address VARCHAR2(200),
city VARCHAR2(50),
country VARCHAR2(50),
zip_code VARCHAR2(10),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 产品信息表
-- 测试小数数据类型;包含检查库存数量是否为非负的 CHECK 约束。
CREATE TABLE Products (
product_id NUMBER(10) PRIMARY KEY,
name VARCHAR2(100) NOT NULL,
category VARCHAR2(50),
price NUMBER(10, 2),
stock_quantity NUMBER(5) CHECK (stock_quantity >= 0)
);
-- 订单详情表(关联外键)
-- 包含外键约束,测试外键的迁移;使用虚拟列 total_price,测试计算列的兼容性。
CREATE TABLE Order_Details (
order_detail_id NUMBER(10) PRIMARY KEY,
order_id NUMBER(10) REFERENCES Orders(order_id) ON DELETE CASCADE,
product_id NUMBER(10) REFERENCES Products(product_id),
quantity NUMBER(5) CHECK (quantity > 0),
price NUMBER(10, 2),
total_price AS (quantity * price) VIRTUAL
);
-- 员工信息表
-- 测试自引用的外键(如管理者的 ID);包含日期类型和数字类型。
CREATE TABLE Employees (
employee_id NUMBER(10) PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
hire_date DATE,
department_id NUMBER(10),
salary NUMBER(10, 2),
manager_id NUMBER(10),
FOREIGN KEY (manager_id) REFERENCES Employees(employee_id)
);
-- 部门信息表
-- 基础信息表,用于与其他表的外键关联;包含检查约束用于测试预算是否为正数。
CREATE TABLE Departments (
department_id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
location VARCHAR2(100),
budget NUMBER(12, 2) CHECK (budget > 0)
);
-- 库存记录表(复杂表结构)
-- 包含组合唯一约束,测试复杂唯一约束的兼容性;包含默认值时间戳字段。
CREATE TABLE Inventory (
inventory_id NUMBER(10) PRIMARY KEY,
product_id NUMBER(10) REFERENCES Products(product_id),
warehouse_id NUMBER(10),
stock_level NUMBER(10),
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE (product_id, warehouse_id)
);
-- 仓库信息表
-- 仓库和员工有外键关系;用于测试数据库间表的跨引用。
CREATE TABLE Warehouses (
warehouse_id NUMBER(10) PRIMARY KEY,
location VARCHAR2(100),
capacity NUMBER(10),
manager_id NUMBER(10),
FOREIGN KEY (manager_id) REFERENCES Employees(employee_id)
);
-- 销售统计表(分区表)
-- 包含分区表结构,以测试分区表的迁移;
CREATE TABLE Sales_Stats (
sales_id NUMBER(10) PRIMARY KEY,
year NUMBER(4) NOT NULL,
month NUMBER(2) NOT NULL,
month_start_date DATE DEFAULT SYSDATE NOT NULL,
product_id NUMBER(10) REFERENCES Products(product_id),
total_sales NUMBER(12, 2)
)
PARTITION BY RANGE (month_start_date)
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH')) (
PARTITION p_initial VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD'))
);
其中有一个 SQL 执行失败,提示语法有问题:

使用 AI 建议进行修复:

再次执行成功:

所有表都创建成功后,进行数据生成测试:

执行数据生成:

生成失败:

很多 check 都需要人为进行调整,无法自动识别约束限制条件:

在遇到复杂场景的情况下,很多逻辑方面还需要进行优化,基础功能虽然可用,但是需要人为干预较多。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




