把一个结果集插入 到一张表里
时间: 2024-02-23 18:59:26 浏览: 70
Duplicity:比较文件内容的程序
好的,以下是一个将结果集插入到指定表中的MySQL存储过程:
```sql
DELIMITER //
CREATE PROCEDURE insert_result_set_to_table(IN table_name VARCHAR(255), IN query_statement TEXT)
BEGIN
SET @query = CONCAT('INSERT INTO ', table_name, ' SELECT * FROM (', query_statement, ') AS tmp');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
```
使用方法:
1. 声明存储过程:
```sql
CALL insert_result_set_to_table('your_table_name', 'your_query_statement');
```
2. 将实际的表名和查询语句替换成对应的内容即可。
例如,插入一张名为 `students` 的表中的所有记录:
```sql
CALL insert_result_set_to_table('students', 'SELECT * FROM students_backup');
```
这里的 `students_backup` 是一个备份表,存储了 `students` 表中的所有记录。该存储过程会将备份表中的所有记录插入到 `students` 表中。
阅读全文