汝之观览,吾之幸也!本文主要聊聊怎样才能更好的使用提示词,给开发提速,大大缩减我们的开发时间,比如在开发中使用生成表结构脚本的提示词,生成代码的提示词等等。
一、准备
本文主要根据Claude进行演示,关于如何使用Claude技术(主要是免费),请参考文章
【大数据模型】使用Claude浅试一下
,也可使用其他大数据模型的产品,如百度的文心一言,有阿里的通义千问,也有复旦大学的MOSS、科大讯飞星火大模型等等,有条件的可以使用ChatGpt,会更准确。
二、输出sql脚本
1、输出建表语句
请你担任mysql建表设计师,我将与你进行对话,我将输入字段,你根据字段生成一张mysql的表,以下是建表的一些要求
【强制】表名满足要求,以illp开头。
【强制】数据库表字段必须有注释,主键不加注释。
【强制】名称只能含有字母,数字和下划线“_”三类字符。
【强制】表名要避免使用关键字
【强制】命名应采用能够准确反映其中文含义的英文单词或英文单词的缩写构成,避免出现英文单词和汉语拼音混用的情况。如果英文单词已定义了缩写,应该用缩写
【推荐】在不同位置出现的、表示相同含义及内容的字段名称命名应该一致。
后缀名参考
表分类 命名要求
关系表 以_rel结尾
属性表 以_attr结尾
历史表 以_his结尾
日志表 以_log结尾
对照表 以_map结尾
规则表 以_rul结尾
配置表 以_cfg结尾
以下是一些特别的前后缀,代表了这个字段特殊的含义。在其他的情况,应避免使用以下的前后缀:
前后缀 定义
_desc 参数表内的描叙字段 如字段名是offer_desc,表示销售品描述
_flag 布尔型字段
_nbr/no 编号字段
_num/_nbr 号码字段
_id 标识字段
_type 类型字段,用来表示有类型含义的字段 如字段名是offer_type,表示销售品类型
is_ 描述含有是否含义的字段,主数据值只有0/1或者N/Y两种情况,如is_default,表示是否默认 数据类型是char(1)(N/Y)或者unsigned tinyint (1表示是,0表示否)。
【推荐】表常备字段:xxx_id, created_time,create_by
update_time,update_by表示主键、创建时间、创建人、更新时间、更新人。时间类型均为 datetime类型。
你只需要输出建表语句,在我输入字段的基础上其中加上创建时间、创建人、更新时间、更新人与id,其他什么都不要输出
我的第一个表是用户表
用户名称、用户编码、性别、身份证、手机号
输出后的数据如下,"illp_"是表前缀,可进行修改,DDL语句可做下加工处理
CREATE TABLE illp_user (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
user_name VARCHAR(50) NOT NULL COMMENT '用户名称',
user_code VARCHAR(20) NOT NULL COMMENT '用户编码',
gender TINYINT NOT NULL COMMENT '性别',
id_card VARCHAR(18) NOT NULL COMMENT '身份证',
mobile VARCHAR(11) NOT NULL COMMENT '手机号',
created_time DATETIME NOT NULL COMMENT '创建时间',
created_by VARCHAR(20) NOT NULL COMMENT '创建人',
updated_time DATETIME NOT NULL COMMENT '更新时间',
updated_by VARCHAR(20) NOT NULL COMMENT '更新人',
PRIMARY KEY (id)
) COMMENT '用户表';
2、输出mock数据的新增语句
在创建表结构后,开发需要一些数据进行测试接口,可直接输出mock数据,帮助快速的接口联调工作,
具体的数据要求可根据实际开发进行添加修改
请你担任mysql数据分析师,我将与你进行对话,我将输入表结构,你根据字段生成mock数据,
表结构如下
CREATE TABLE illp_user (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
user_name VARCHAR(50) NOT NULL COMMENT '用户名称',
user_code VARCHAR(20) NOT NULL COMMENT '用户编码',
gender TINYINT NOT NULL COMMENT '性别',
id_card VARCHAR(18) NOT NULL COMMENT '身份证',
mobile VARCHAR(11) NOT NULL COMMENT '手机号',
created_time DATETIME NOT NULL COMMENT '创建时间',
created_by VARCHAR(20) NOT NULL COMMENT '创建人',
updated_time DATETIME NOT NULL COMMENT '更新时间',
updated_by VARCHAR(20) NOT NULL COMMENT '更新人',
PRIMARY KEY (id)
) COMMENT '用户表';
输出10条数据,输出的数据有以下要求:
【强制】创建人、更新人使用汉字,创建时间、更新时间使用now()
输出语句
INSERT INTO illp_user (user_name, user_code, gender, id_card, mobile, created_time, created_by, updated_time, updated_by) VALUES
('张三', '1001', 1, '110101199003077331', '13811111111', now(), '王五', now(), '王五'),
('李四', '1002', 2, '110101199102087744', '13822222222', now(), '王五', now(), '王五'),
('王五', '1003', 1, '110101199103067555', '13833333333', now(), '王五', now(), '王五'),
('赵六', '1004', 2, '110101199104067666', '13844444444', now(), '王五', now(), '王五'),
('孙七', '1005', 1, '110101199105072777', '13855555555', now(), '王五', now(), '王五'),
('周八', '1006', 2, '110101199106017388', '13866666666', now(), '王五', now(), '王五'),
('吴九', '1007', 1, '110101199107072899', '13877777777', now(), '王五', now(), '王五'),
('郑十', '1008', 2, '110101199108037910', '13888888888', now(), '王五', now(), '王五'),
('冯十一', '1009', 1, '110101199109051021', '13899999999', now(), '王五', now(), '王五'),
('蒋十二', '1010', 2, '110101199110221011', '13800000000', now(), '王五', now(), '王五');
3、将接口数据输出到表中,数据迁移mock
在开发阶段,有些原始数据无法得到,只能获取到其他系统的接口数据,为了开发方便,可通过以下方式将接口数据
输出到表中
[
{
"id": "1682064228009291777",
"businessType": 2,
"dictCode": "DICT_CODE_1495695289843849946",
"parentTypeId": 0,
"typeId": "1495695289843849945",
"dictKey": "不推送消息",
"dictValue": "1",
"dictParam": 0,
"projectCode": "ZH_00015_XM_00000001",
"map": null
}
]
请将上述的json数据转化为insert语句,insert语句中的"#{}"包含的值取自json中对应的字段的值,insert语句如下所示,
insert into illp_inspection_policyconfig(bussiness_type,`type`,name,description,order_num,create_time,logic_del)
values
('#{businessType}','#{businessType}','#{dictKey}','#{dictKey}','#{closeTypeName}','admin','0')
请输出insert语句,输出的values用,分割,并且换行,只有一个values
输出语句
insert into illp_inspection_policyconfig(bussiness_type,`type`,name,description,order_num,create_time,logic_del)
values
('2','2','不推送消息','不推送消息','1','admin','0')