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语句相关推荐

  1. oracle 动态执行ddl语句,Oracle过程中执行动态SQL或DDL语句

    如果你用的是 Oracle 8i 及以上的版本,那简单,在过程中用 execute immediate sql_str 就行, sql_str 是一个拼凑的 SQL 语句, 如果你用的是 Oracle ...

  2. mysql 导入ddl_导出数据库的DDL语句

    导出数据库的DDL语句 1. 方法1:: 使用包dbms_metadata.get_ddl 只能对一个单独对象使用,不能批量导出. select dbms_metadata.get_ddl('USER ...

  3. oracle存储过程ddl,Oracle 存储过程中的DDL语句

    Oracle的存储过程,是我们使用数据库应用开发的重要工具手段.在存储过程中,我们大部分应用场景都是使用DML语句进行数据增删改操作.本篇中,我们一起探讨一下数据定义语句DDL在存储过程中使用的细节和 ...

  4. SQLDataSet中执行DDL语句

    在SQLDataSet中执行我们输入的DDL语句,并观察执行结果. 这里为了省输入的时间,从先输好的记事本中复制的SQL语句.效果图: ******************************** ...

  5. oracle 触发器执行ddl,在Oracle的触发器中执行DDL语句

    触发器无需commit 也不能写commit 触发器和触发它的DML是同一个事务 DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT 那就用自治事务 相当 ...

  6. mySQL基本语法 DDL语句

    一.mySQL基本语法 二.数据库的DDL语句(数据库的定义语句)之库的操作 1.查看库 2.创建库 或者 :create database 库名; 3.查看库的字符集 4.修改库的字符集 5.删除库 ...

  7. mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...

    用VC通过DLL包连接mysql,执行存储过程后,再执行其他查询无效? MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mys ...

  8. mysql存储过程并行_Mysql存储过程的执行顺序问题

    Mysql存储过程的执行顺序问题 SQL code: CREATE TABLE `t_a` ( `a_id` int(11) NOT NULL AUTO_INCREMENT, `a_name` var ...

  9. java连接mysql执行ddl_dljd_(007_009)_jdbc执行DQL/DML/DDL语句

    packageedu.aeon.jdbc;importjava.sql.Connection;importjava.sql.Driver;importjava.sql.DriverManager;im ...

最新文章

  1. 关于java和c的选择结构和循环结构
  2. 【多线程】1.条件变量--std::condition_variable
  3. 喜欢linux的朋友加QQ群了170838394
  4. 围圈报数(信息学奥赛一本通-T1334)
  5. Linux修改history存储的最大记录数
  6. Android学习小Demo(9)一个To Do List的实现
  7. 国内达梦数据库相关函数-时间日期
  8. 压力测试就是一种破坏性的性能测试
  9. 做JSP大学实用教程实验
  10. 数电第四章:组合逻辑电路
  11. 学习笔记(三):WiFi-Sleep
  12. 我努力了18年,不是为了和你一起喝咖啡姐妹篇
  13. HDU 1521 排列组合 (指数型母函数)
  14. 向ftp上传文件失败的可能原因
  15. k8s1.23 Ingress-nginx实操
  16. Rails 中的Concerns 目录
  17. 线程并发锁竞争--java锁jvm锁--synch锁分析
  18. 超好用的PDF阅读器——Xodo PDF Reader
  19. 坚守还是追新,开发者如何应对新技术暗潮
  20. MATLAB工具箱(功能型工具箱和领域型工具箱)

热门文章

  1. 古希腊的五大数学巨匠
  2. springboot细节挖掘(对测试的支持)
  3. java中的守护线程
  4. python可以管理操作系统吗_python之路——操作系统的发展史
  5. 后勤管理系统_高校后勤设备报修管理系统_易报修系统高校后勤管理系统_免费高校后勤管理系统...
  6. oracle erp crm系统,企业集成ERP和CRM系统的模式体验
  7. [专栏精选]Unity中编码Encoding脱坑指南
  8. Pyqt5:使用多线程QThread
  9. OpenShift 4 - 在集群节点用crictl对Pod/Image/Container进行操作
  10. OpenShift 4 - 查看Node上的日志