需求:
测试工作中修改单需要构造单元下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;