DELIMITER $$
USE `gongwuyuan_0630`$$
DROP PROCEDURE IF EXISTS `cp_data`$$
CREATE DEFINER = `space` @`172.21.%` PROCEDURE `cp_data` (IN tb_name VARCHAR (100))
BEGIN
DECLARE v_result_tb_name VARCHAR (100) ;
DECLARE v_note_tb_name VARCHAR (100) ;
DECLARE v_mark_tb_name VARCHAR (100) ;
DECLARE v_ol_question VARCHAR (100) ;
DECLARE v_old_db VARCHAR (100) ;
DECLARE v_new_db VARCHAR (100) ;
DECLARE v_mark_id INT ;
DECLARE v_tid INT ;
#修改数据库名,需要根据生产环境修改数据名
SET v_old_db = "gongwuyuan_0630" ;
SET v_new_db = "chapter_591up" ;
SET v_ol_question = CONCAT(v_old_db, ".ol_question") ;
SET v_note_tb_name = CONCAT(v_new_db,'.common_questionnote') ;
SELECT SUBSTRING(tb_name,LENGTH('new_answerresult_') + 1) INTO v_tid ;
SET v_result_tb_name = CONCAT(v_new_db, '.answerresult_', v_tid) ;
SELECT MOD(v_tid, 20) INTO v_mark_id ;
SET v_mark_tb_name = CONCAT(v_new_db,'.markedquestion_',v_mark_id);
SET tb_name = CONCAT(v_old_db, ".", tb_name) ;
#1. 插入作答记录表
SET @SQL_CONTEXT = CONCAT(
"INSERT IGNORE INTO ",v_result_tb_name,
" (`CourseId`,`UserId`,`QuestionId`,`TotalRightCount`,`TotalWrongCount`
,`TotalCount`,`TotalCostTime`,`IsLastRight`,`LastResult`,`LastCostTime`,
`LastTime`
) SELECT
n.SUBJECT,
n.UserId,
q.Id,
n.CorrectCount,
n.ErrorCount,
n.TotalCount,
n.TotalCostTime,
n.LastIsCorrect,
REPLACE(
REPLACE(
REPLACE(
REPLACE(
LastAnswerXML,
']]></i></a><a><i><![CDATA[',
'",
"'
),
'<as><a><i><![CDATA[',
'[""'
),
']]></i></a></as>',
'""]'
),
'<as></as>',
''
) json,
#n.LastAnswerXML,
if(n.LastCostTime>32767,32767,n.LastCostTime)LastCostTime,
n.LastAnswerTime
FROM ",tb_name," n INNER JOIN ",v_ol_question,
" q USING(questionid) WHERE n.SUBJECT = 10") ;
PREPARE smtp FROM @SQL_CONTEXT ;
EXECUTE smtp ;
DEALLOCATE PREPARE smtp ;
#2.插入笔记
SET @SQL_CONTEXT = CONCAT(
"INSERT IGNORE INTO ",v_note_tb_name,"(`UserId`,`QuestionId`,`Content`,`IsPublic`,`IsAudited`,`UpdateTime`,`DigCount`)
SELECT
n.UserId,
q.Id,
n.Reviews,
n.IsPublic,
1,
n.LastAnswerTime,
0
FROM ",tb_name," n INNER JOIN ",v_ol_question,
" q USING(questionid)
WHERE n.SUBJECT = 10 AND Reviews>'' AND Reviews<>'为什么做错了?是因为....'"
) ;
PREPARE smtp FROM @SQL_CONTEXT ;
EXECUTE smtp ;
DEALLOCATE PREPARE smtp ;
#3. 导入错题
SET @SQL_CONTEXT = CONCAT(
"INSERT IGNORE INTO ",v_mark_tb_name,"(
`UserId`,
`QuestionId`,
`TypeId`,
`RootCatalogId`,
`CreateTime`,
`CourseId`
)
SELECT
n.UserId,
q.Id,
n.AnswerResultCategory,
n.RootCatalogId,
n.LastAnswerTime,
n.SUBJECT
FROM ",tb_name," n INNER JOIN ",v_ol_question," q USING (questionid)
WHERE n.SUBJECT = 10
AND AnswerResultCategory IN (2, 3, 6)" );
PREPARE smtp FROM @SQL_CONTEXT ;
#select @SQL_CONTEXT;
EXECUTE smtp ;
DEALLOCATE PREPARE smtp ;
END $$
DELIMITER ;
分享到:
相关推荐
oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
Oracle存储过程导入导出数据,希望大家共同提高。
专门用于管理员到数据的存储过程,很好用
(2)使用“实验一”中的数据库“abc”,创建一个带有输入参数的存储过程proc_abc,查询指定职工的销售记录,用户输入职工编号,存储过程返回职工名称、产品名称、销售日期、销售数量,假如执行存储过程时所提供的...
NULL 博文链接:https://uule.iteye.com/blog/980620
批量插入百万条数据,自定义函数,动态生成数据,伪造真实数据。
JDBC创建触发器 JDBC存储过程 JDBC创建表 数据备份 java备份数据库/JAVA恢复数据、java导入sql脚本
执行存储过程,通过指定目标数据库登录信息,动态生成dblink,打开游标,按批次插入本地指定表中,每批次1万条数据。同步记录和日志信息写在自动生成的sync_log表中。同步完成后自动删除动态生成的存储过程、dblink...
10.4.1 使用临时表来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与...
结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部数据) 不足: 不支持text,binary,image,text等类型; 编写:liangning ...
使用oracle存储过程将xml文件数据导入数据库导入步骤,配源码和截图。
PL/SQL存储过程实现导入文件的数据到数据库(仿imp)
1、修改表名 2、创建新表 3、按时间条件插入数据 由于数据太大、用的改表名的方式备份分表,通过传入表名和条件字段名备份相应的表
sqlserver的存储过程批量生成insert插入语句 在需要批量导入数据或者保留数据的情况下使用
存储过程插入文件操作方法
数据自动采集接口的实现需要依托于LabVIEW数据采集技术以及Java存储过程,在LabVIEW数据采集过程中引进Java存储过程,借助此接口可以实现实验室数据向船舶数字化平台的导入,有效节省人工操作环节。文章首先对LabVIEW...
应用于存在外键或其他约束时,需要跳过约束条件将数据导入表中,可使用该存储过程临时关闭或开启数据约束, 使用时可根据实际情况进行修改
在存储过程中,根据一张主表去创建一张副表。 在根据需要限制的时间,查询主表里面的数据。将主表的数据插入到新建的副表里面同时将主表的数据删除,使用事物进行控制操作的过程
10.4.1 使用临时表来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与...