mysql 存储过程执行ddl_mysql存储过程执行ddl语句
CREATE PROCEDURE parameter_split(in table_name VARCHAR(30),in start_time BIGINT(16),in end_time BIGINT(16))BEGIN
--得到时间
DECLARE table_year VARCHAR(5);DECLARE table_month VARCHAR(3);DECLARE table_day VARCHAR(3);--按开始时间设置年月日,并补齐单月为 05
SET table_year = YEAR(FROM_UNIXTIME(start_time/1000));SET table_month = MONTH(FROM_UNIXTIME(start_time/1000));SET table_day = DAY(FROM_UNIXTIME(start_time/1000));IF table_month < 10 THEN
SET table_month = CONCAT("0",table_month);SELECTtable_month;END IF;IF table_day < 10 THEN
SET table_day = CONCAT("0",table_day);SELECTtable_day;END IF;--设置表名
SET table_name =CONCAT(table_name,table_year,table_month,table_day);--创建表语句
IF table_name="t_sg_electric_meter_parameter_data" THEN
SET @creat_parameter_table_sql = CONCAT("CREATE TABLE IF NOT EXISTS",table_name,
" (`id`int(11) NOT NULLauto_increment,",
"`data_type`varchar(255) default NULL,",
"`freq`double default NULL,",
"`lineVoltage_A`double default NULL,",
"`lineVoltage_B`double default NULL,",
" `lineVoltage_C`double default NULL,",
"`phaseCurrent_A`double default NULL,",
"`phaseCurrent_B`double default NULL,",
"`phaseCurrent_C`double default NULL,",
" `phaseVoltage_A`double default NULL,",
"`phaseVoltage_B`double default NULL,",
"`phaseVoltage_C`double default NULL,",
"`timestamp` datetime default NULL,",
"`electric_meter_id`int(11) default NULL,",
"`timestamp_long`bigint(14) default NULL,",
"PRIMARY KEY(`id`),",
"KEY`FK_6xa5d3kb1j2cnhw4skdg9nlq9` (`electric_meter_id`),",
"KEY`index_name` (`timestamp_long`),",
"FOREIGN KEY (`electric_meter_id`) REFERENCES`t_sg_electric_meter` (`id`)",
") ENGINE=InnoDB AUTO_INCREMENT=5184520 DEFAULT CHARSET=utf8;"
);--创建插入语句
SET @insert_data_sql = CONCAT("INSERT INTO",table_name," (data_type,freq,lineVoltage_A,lineVoltage_B,lineVoltage_C,phaseCurrent_A,phaseCurrent_B,",
"phaseCurrent_C,phaseVoltage_A,phaseVoltage_B,phaseVoltage_C,timestamp,electric_meter_id,timestamp_long) SELECTdata_type,freq,lineVoltage_A,lineVoltage_B,lineVoltage_C,phaseCurrent_A,phaseCurrent_B,",
"phaseCurrent_C,phaseVoltage_A,phaseVoltage_B,phaseVoltage_C,timestamp,electric_meter_id,timestamp_long from t_sg_electric_meter_parameter_data WHERE timestamp_long BETWEEN",
start_time,"AND",end_time);--创建删除数据的语句
SET @delete_data_sql = CONCAT("DELETE FROM t_sg_electric_meter_parameter_data WHERE timestamp_long BETWEEN ",start_time," AND",end_time);
ELSEIF table_name="t_sg_electric_meter_demand_data" THEN
SET @creat_demand_table_sql = CONCAT("CREATE TABLE IF NOT EXISTS",table_name,
" (`id`int(11) NOT NULLauto_increment,",
"`active_demand`double default NULL,",
"data_type`varchar(255) default NULL,",
"`reactive_demand`double default NULL,",
"`timestamp` datetime default NULL,",
"`total_demand`double default NULL,",
"`electric_meter_id`int(11) default NULL,",
"`timestamp_long`bigint(14) default NULL,",
"PRIMARY KEY(`id`),",
"KEY`index_electric_meter_id` (`electric_meter_id`),",
"KEY`index_timestamp_long` (`timestamp_long`),",
"FOREIGN KEY (`electric_meter_id`) REFERENCES`t_sg_electric_meter` (`id`)",
") ENGINE=InnoDB AUTO_INCREMENT=2017227 DEFAULT CHARSET=utf8;"
);END IF;--执行创建表语句
PREPARE c_day_stmt FROM @creat_table_sql;EXECUTEc_day_stmt;--执行插入数据语句
PREPARE i_parameter_day_stmt FROM @insert_data_sql;EXECUTEi_parameter_day_stmt;--执行删除语句
PREPARE d_parameter_day_stmt FROM @delete_data_sql;EXECUTEd_parameter_day_stmt;END;
mysql 存储过程执行ddl_mysql存储过程执行ddl语句相关推荐
- oracle 动态执行ddl语句,Oracle过程中执行动态SQL或DDL语句
如果你用的是 Oracle 8i 及以上的版本,那简单,在过程中用 execute immediate sql_str 就行, sql_str 是一个拼凑的 SQL 语句, 如果你用的是 Oracle ...
- mysql 导入ddl_导出数据库的DDL语句
导出数据库的DDL语句 1. 方法1:: 使用包dbms_metadata.get_ddl 只能对一个单独对象使用,不能批量导出. select dbms_metadata.get_ddl('USER ...
- oracle存储过程ddl,Oracle 存储过程中的DDL语句
Oracle的存储过程,是我们使用数据库应用开发的重要工具手段.在存储过程中,我们大部分应用场景都是使用DML语句进行数据增删改操作.本篇中,我们一起探讨一下数据定义语句DDL在存储过程中使用的细节和 ...
- SQLDataSet中执行DDL语句
在SQLDataSet中执行我们输入的DDL语句,并观察执行结果. 这里为了省输入的时间,从先输好的记事本中复制的SQL语句.效果图: ******************************** ...
- oracle 触发器执行ddl,在Oracle的触发器中执行DDL语句
触发器无需commit 也不能写commit 触发器和触发它的DML是同一个事务 DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT 那就用自治事务 相当 ...
- mySQL基本语法 DDL语句
一.mySQL基本语法 二.数据库的DDL语句(数据库的定义语句)之库的操作 1.查看库 2.创建库 或者 :create database 库名; 3.查看库的字符集 4.修改库的字符集 5.删除库 ...
- mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...
用VC通过DLL包连接mysql,执行存储过程后,再执行其他查询无效? MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mys ...
- mysql存储过程并行_Mysql存储过程的执行顺序问题
Mysql存储过程的执行顺序问题 SQL code: CREATE TABLE `t_a` ( `a_id` int(11) NOT NULL AUTO_INCREMENT, `a_name` var ...
- java连接mysql执行ddl_dljd_(007_009)_jdbc执行DQL/DML/DDL语句
packageedu.aeon.jdbc;importjava.sql.Connection;importjava.sql.Driver;importjava.sql.DriverManager;im ...
最新文章
- 关于java和c的选择结构和循环结构
- 【多线程】1.条件变量--std::condition_variable
- 喜欢linux的朋友加QQ群了170838394
- 围圈报数(信息学奥赛一本通-T1334)
- Linux修改history存储的最大记录数
- Android学习小Demo(9)一个To Do List的实现
- 国内达梦数据库相关函数-时间日期
- 压力测试就是一种破坏性的性能测试
- 做JSP大学实用教程实验
- 数电第四章:组合逻辑电路
- 学习笔记(三):WiFi-Sleep
- 我努力了18年,不是为了和你一起喝咖啡姐妹篇
- HDU 1521 排列组合 (指数型母函数)
- 向ftp上传文件失败的可能原因
- k8s1.23 Ingress-nginx实操
- Rails 中的Concerns 目录
- 线程并发锁竞争--java锁jvm锁--synch锁分析
- 超好用的PDF阅读器——Xodo PDF Reader
- 坚守还是追新,开发者如何应对新技术暗潮
- MATLAB工具箱(功能型工具箱和领域型工具箱)
热门文章
- 古希腊的五大数学巨匠
- springboot细节挖掘(对测试的支持)
- java中的守护线程
- python可以管理操作系统吗_python之路——操作系统的发展史
- 后勤管理系统_高校后勤设备报修管理系统_易报修系统高校后勤管理系统_免费高校后勤管理系统...
- oracle erp crm系统,企业集成ERP和CRM系统的模式体验
- [专栏精选]Unity中编码Encoding脱坑指南
- Pyqt5:使用多线程QThread
- OpenShift 4 - 在集群节点用crictl对Pod/Image/Container进行操作
- OpenShift 4 - 查看Node上的日志