需求:
测试工作中修改单需要构造单元下4000个组合的数据,写个博客来记录,其他类似的可以举一反三。
具体sql:
实现1个产品1个单元下插入4000个组合数据
思路:
在MySQL 8中实现循环插入4000条具有不同主键的记录,可以使用AUTO_INCREMENT
和循环插入的方式。下面是一个示例的MySQL 8循环插入语句以插入4000条具有不同主键的记录:
使用一个计数器 @counter
,然后在插入语句中将其递增并赋给 id
列,从而生成不同的主键值。然后,我们在其他不是主键的列中插入相同的值。
请注意,在执行插入操作之前,确保主键列已经设置为 AUTO_INCREMENT
,这样才能确保插入的记录具有不同的主键值。
具体实现:
INSERT INTO `dbtrade`.`yh_tcombi` (`company_id`,`combi_id`,`asset_id`,`fund_id`,`combi_code`,`combi_name`,`create_date`,`combi_status`,`remark`,`op_bid_combi_id`,`omgeo_sub_account`,`bank_sub_account`,`qfii_sub_account_tag`,`english_full_name`,`bank_serial_no`,`customer_manager_name`,`english_short_name`,`custodian_seat`
) -- 替换为你的表名和列名
SELECT'100016',(@counter := @counter + 1) AS combi_id,'313','732',(@counter := @counter + 1) AS combi_code,'0001组合','20231214','1',' ','0','','','','','0','','',''
FROM`dbtrade`.`yh_tcombi`,(SELECT @counter := 10000) AS init--计数器初始值给一个10000(超过系统combi_id最大值)才不会主键冲突
LIMIT 4000;