`

mysql 获取数据库表、字段存储过程

 
阅读更多

 

DELIMITER $$

DROP PROCEDURE IF EXISTS `paltform`.`pt_init` $$
CREATE PROCEDURE `platform`.`pt_init` ()
BEGIN

/* Clear the table TablesRemark which the table has being delete from sys tables */
DELETE FROM tablesremark
  WHERE tablename NOT IN (
    SELECT t.table_name AS tablename
      FROM information_schema.tables t
      WHERE t.table_schema = 'paltform');

/* Check the sys tables,add the tables
   which does exist in the sys tables
   but does not exist in the table TablesRemark */
INSERT INTO tablesremark(tablename)
  SELECT LCASE(t.table_name) AS tablename
    FROM information_schema.tables t
      WHERE t.table_schema = 'platform'
    AND t.table_name NOT IN (SELECT tablename FROM tablesremark);

/* Clear the table ColsRemark which the table_column has being delete from the sys tables,columns */
CREATE TEMPORARY TABLE temp
  SELECT CONCAT(CONCAT(LCASE(t.table_name) ,'_'), LCASE(c.column_name)) AS tablecolname
    FROM information_schema.tables t
    INNER JOIN information_schema.columns c
          ON t.table_name = c.table_name
          WHERE t.table_schema = 'platform';
DELETE FROM colsremark WHERE id not IN (SELECT tablecolname FROM temp);
DROP TABLE temp;

/* Add the table_column data into the table ColsRemark
   which does exist in the sys tables,columns
   but does not exist in the table ColsRemark */
INSERT INTO ColsRemark (id , tablename, colname, colorder, addtime)
  SELECT CONCAT(CONCAT(LCASE(t.table_name) ,'_'), LCASE(c.column_name)) AS id,
         LCASE(t.table_name) AS tablename,
         LCASE(c.column_name) AS colname,
         c.ordinal_position AS colorder,
         now() AS addtime
    FROM information_schema.tables t
    INNER JOIN information_schema.columns c
          ON t.table_name = c.table_name
          WHERE t.table_schema = 'platform'
          AND (
            NOT EXISTS
                (SELECT id FROM colsremark col
                  WHERE col.tablename = t.table_name and col.colname = c.column_name
                )
          );

/* Update the table TablesRemark's column colchanged
   if the col has be changed in the table ColsRemark */
UPDATE tablesremark SET colchanged = 1
  WHERE tablename IN (SELECT tablename FROM colsremark WHERE colchanged=1);

/* Update the table ColsRemark's column colorder
   so that the order can as the same as the sys columns
   optimized sql */
UPDATE colsremark,(
 SELECT c.column_name,t.table_name,c.ordinal_position 
	FROM information_schema.columns c,information_schema.tables t 
	WHERE c.table_name=t.table_name
) temp 
	SET colsremark.colorder=temp.ordinal_position 
	WHERE temp.column_name=colsremark.colname;
/* not optimized sql
UPDATE colsremark SET colorder =
  (SELECT c.ordinal_position
    FROM information_schema.columns c
    INNER JOIN information_schema.tables t
    ON c.table_name=t.table_name
    WHERE c.column_name=colsremark.colname
    AND t.table_name=colsremark.tablename);
*/

UPDATE colsremark SET categoryid = '{612F4576-4BF6-424A-BB92-04E836CAB4FF}' WHERE colname IN ('adder' , 'moder');
UPDATE colsremark SET categoryid = '{0ECC56D4-9F55-4633-8A41-172CB220ABF9}' WHERE colname IN ('delstatus');
UPDATE colsremark SET categoryid = '{57460F9A-7F41-4733-84F5-AB1DDEAFBB0F}' WHERE colname IN ('rdeptid');

END $$

DELIMITER ;
分享到:
评论

相关推荐

    java如何获得数据库表中各字段的字段名

    java如何获得数据库表中各字段的字段名

    基于存储过程的MySQL数据库BLOB字段访问.pdf

    基于存储过程的MySQL数据库BLOB字段访问.pdf

    MySql练习1:创建数据库表news.zip

    MySql练习1:创建数据库表news.zip MySql练习1:创建数据库表news.zip MySql练习1:创建数据库表news.zip

    MySQL数据表添加字段

    MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字; <新字段名> 为所要添加的字段的名字; <数据类型> 为所要添加的...

    java比较两个mysql数据库中的表信息差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

    MySql数据库的列类型(字段类型).

    MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).

    mysql任意数据库中在系统所有表中所有字段查询符合任意字符的存储过程

    NULL 博文链接:https://gaochunhu.iteye.com/blog/2409829

    MySQL数据库:表的概念.pptx

    注意:MySQL对象包括数据库、表、视图、存储过程或存储函数等。这些对象名必须符合一定规则或约定,各个DBMS的约定不完全相同。 命名规则 表的概念 名字可以由当前字符集中的任何字母数字字符组成,下划线(_)和...

    MySQL数据库:存储过程嵌套.pptx

    创建另外一个存储过程sell_update,在其中调用第一个存储过程,如果给定参数为0,则修改由第一个存储过程插入记录的是否发货字段为'已发货',如果给定参数为1则删除第一个存储过程插入的记录,并将操作结果输出。...

    insert和select结合实现”插入某字段在数据库中的最大值+1″的方法

    本文是mysql 数据库 问题一 将表一的数据导入表二...在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人都说用存储过程什么的解决,其实使用insert 和 select 结合就可以很好的解决这个问题啊

    解决python写入mysql中datetime类型遇到的问题

    在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中...

    mysql创建存储过程实现往数据表中新增字段的方法分析

    本文实例讲述了mysql创建存储过程实现往数据表中新增字段的方法。分享给大家供大家参考,具体如下: 需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作;若该字段不存在,则新增) 百度了n久,...

    MySQL数据库设计、优化.pptx

    提纲 规范 基础规范 命名规范 库表规范 字段规范 索引规范 开发环境 优化 MySQL数据库设计、优化全文共24页,当前为第2页。 规范 基础规范 全部使用InnoDB引擎,MyISAM适用场景非常少 字符集:latin1 => utf8 => ...

    全国各省、市、县、镇、村数据库mysql脚本单表

    全国各省、市、县、镇、村数据库mysql脚本,单表存储,精确到村一级,包含地区名称、地区编码、上级名称、上级编码、区划层级字段

    MySQL查询把多列返回结果集拼装成一个字段

    单个列表中,需要显示不同快递公司的配送区域,相关表中存储是的对应的地区id字段 2主表中记录相关业务数据,然后关联相地址表处理结果集,就可以得到我们需要的结果 原数据 最终需要的数据 执行的SQL如下 SELECT ...

    mysql存储过程之返回多个值的方法示例

    本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...

    SqlServer,Oracle,MySql数据库结构相互对比同步

    两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...

    MySQL选择数据库、修改数据库(修改数据库字符集、存储字符符格式)、删除数据库

    MySQL选择数据库、修改数据库(修改数据库字符集、存储字符符格式)、删除数据库 选择数据库为什么要选择数据库? 因为数据是存储到数据表,表存储在数据库下。如果要操作数据,那么必须要进入到对应的数据库才行。 ...

    MySQL数据库资料+sql语句

    此文件是本人亲自开发,测试,编写的,里面的内容绝对的物有所值,文件内容包括MySQL数据库模型图,完整的数据库语句,以及最重要的数据库文档说明,说明中包含数据库所有表结构以及相互之间的关联关系。很适合...

    比较两个MYSQL数据库中的对象差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

Global site tag (gtag.js) - Google Analytics