📜  mysql insert generate serie - SQL (1)

📅  最后修改于: 2023-12-03 14:44:27.023000             🧑  作者: Mango

MySQL Insert Generate Serie - SQL

本篇文章主要介绍如何在MySQL中使用INSERT语句自动生成一个连续的序列,方便用户批量插入数据。

实现方法

我们可以使用MySQL的内置函数来实现自动生成连续序列的功能,在INSERT语句中使用SELECT语句结合MySQL的ROW_NUMBER()函数来实现。

具体步骤如下:

  1. 定义一个以整数为返回值的自增变量,用于生成连续序列。
SET @i:=0;
  1. 在INSERT语句中使用SELECT语句,通过ROW_NUMBER()函数来自动生成序列。
INSERT INTO table_name(col1, col2, col3, ...)
SELECT (@i:=@i+1), col2, col3, ...
FROM source_table_name;

在这个语句中,第一个参数为自动生成的序列。通过(@i:=@i+1)来实现自增变量的效果,每次插入时都会自动增加。从source_table_name表中读取数据并插入到table_name表中。

示例代码
创建测试表
CREATE TABLE test_table (id INT, name VARCHAR(100));
自动插入100条数据
-- 定义自增变量
SET @i:=0;
-- 插入100条数据
INSERT INTO test_table (id, name)
SELECT (@i:=@i+1), CONCAT('name_', @i)
FROM information_schema.TABLES;
查询结果

查询test_table表中的所有数据:

SELECT * FROM test_table;

结果如下:

| id | name | |----|---------| | 1 | name_1 | | 2 | name_2 | | 3 | name_3 | | 4 | name_4 | | 5 | name_5 | | ... | ... | | 100| name_100|

总结

本文介绍了如何在MySQL中使用INSERT语句自动生成一个连续的序列。使用ROW_NUMBER()函数可以有效地减少手动输入序列的步骤,方便用户批量插入数据。