sql批量插入1000条数据,两张表name是同一个,其中每个表有id变动唯一不重复
时间: 2024-03-21 13:42:50 浏览: 95
MySQL 批量插入,如何不插入重复数据?.zip
你可以使用以下SQL语句批量插入1000条数据,其中每个表的id变动唯一不重复,但name字段是相同的:
```
-- 批量插入1000条数据到table1
INSERT INTO table1 (id, name, column1, column2, ...)
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, 'name' AS name, 'value1' AS column1, 'value2' AS column2, ...
FROM master..spt_values AS a
CROSS JOIN master..spt_values AS b
CROSS JOIN master..spt_values AS c
ORDER BY id;
-- 批量插入1000条数据到table2
INSERT INTO table2 (id, name, column1, column2, ...)
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, 'name' AS name, 'value1' AS column1, 'value2' AS column2, ...
FROM master..spt_values AS a
CROSS JOIN master..spt_values AS b
CROSS JOIN master..spt_values AS c
ORDER BY id;
```
其中,table1和table2是你要插入数据的两张表,name是相同的字段名,column1、column2是table1和table2表中的其他字段,value1、value2是对应字段的值。
这里使用了ROW_NUMBER()函数来生成唯一的id值,每个表中的id值都是不重复的。使用了master..spt_values系统表来生成1000条数据,可以根据需要更改插入数据的数量。使用了SELECT NULL来代替ORDER BY子句中的列名,提高了插入数据的效率。
这样,你就可以批量插入1000条数据,并且保持name字段的一致性,并且每个表中的id值都是唯一的。
阅读全文