`

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对象时非常有用。 #### 基本原理 要实现这一功能,主要依靠`java.sql.ResultSetMetaData`类来获取元...

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

    "基于存储过程的MySQL数据库BLOB字段访问" 基于存储过程的MySQL数据库BLOB字段访问是指在MySQL数据库中使用存储过程来访问和处理二进制数据的方法。这种方法可以使得数据库的二进制数据处理变得更加方便和高效。 ...

    任意数据库连接、表、字段名获取

    4. **字段名获取**:获取表的字段名需要查询数据库的元数据,通常是通过`INFORMATION_SCHEMA.COLUMNS`视图。在这里,你可以通过表名过滤出所需表的列信息,包括列名、数据类型等。 5. **C#编程**:C#是一种面向对象...

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

    标题中的“mysql任意数据库中在系统所有表中所有字段查询符合任意字符的存储过程”涉及到的是MySQL数据库管理和SQL查询技术,特别是如何通过存储过程来实现跨数据库、跨表的复杂查询。存储过程是预编译的SQL语句集合...

    MySQL创建数据库和数据库表.doc

    #### 一、MySQL数据库管理基础 在开始之前,我们需要了解MySQL中的一些基本概念和操作。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它支持SQL(Structured Query Language)语言,用于处理各种数据...

    Oracle|Sqlserver|MySql数据库表结构一键生成工具

    "Oracle|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...

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

    此外,还可以通过`SELECT`语句查询表中的数据,`UPDATE`更新数据,`DELETE`删除数据,这些都是MySQL数据库操作的基本操作。 在进行MySQL练习时,理解这些基本概念并熟练运用是至关重要的。通过不断的练习,你可以更...

    jsp操作mysql数据库的blob字段

    在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...

    MySQL数据表添加字段

    在MySQL数据库管理中,添加字段是一项常见的操作,用于在已有的数据表中增加新的列来扩展数据表的结构。这通常发生在数据需求发生变化或者需要记录更多相关信息时。本篇文章将详细探讨如何在MySQL中添加字段,以及...

    国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf

    《MySQL数据库应用》实验训练1主要关注如何在MySQL环境中创建数据库和表,这是数据库管理的基础操作,对于学习数据库管理和应用开发至关重要。 首先,要进行实验训练,你需要确保你的计算机满足MySQL的运行环境。...

    获取数据库表名和字段名.rar

    - 数据库元数据:大多数数据库系统提供了元数据API,允许程序获取表的详细信息,包括字段名。 - ORM框架:通过查询映射配置或运行时反射,ORM框架也能提供字段名。 4. 实际应用: - 数据迁移:在迁移数据库时,...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    报告中并没有直接提及函数的创建,但是存储过程中的某些操作可以通过函数来实现,比如获取表中的记录数等。 3. 使用游标 游标允许逐行遍历查询结果集。在报告中,update_student_borthyear存储过程中使用了游标来...

    excel表转换为mysql数据库

    - 创建MySQL数据库和表:在MySQL环境中,创建一个新的数据库并定义一个表结构,确保字段类型与Excel中的数据类型相匹配。 - 导入CSV数据:使用MySQL的`LOAD DATA INFILE`命令,将CSV文件导入到已创建的表中。这一...

    Mysql数据库表结构差异性对比工具

    2. **获取表信息**:连接成功后,脚本会查询每个数据库中的所有表,并存储其结构信息,包括字段名、字段类型、是否允许NULL、默认值、索引等。 3. **对比分析**:然后,脚本将比较两组表结构,查找并记录差异。这...

    美国城市地区Mysql数据库

    【标题】"美国城市地区Mysql数据库"是一个包含详尽美国城市和地区信息的数据库,它在MySQL环境中运行,提供了一种高效的方式来存储和查询美国各地的地理数据。 【描述】这个数据库涵盖了美国51个行政区(包括50个州...

    全国省份城市数据库表(mysql).zip

    全国省份城市数据库表是用于存储中国各个省份及下属城市的详细信息的数据结构,通常在MySQL这样的关系型数据库管理系统中实现。这个数据库表对于构建地理信息系统、物流管理、人口统计分析等应用非常有用。在这个...

    MySQL数据库PDF文档

    本文档主要介绍了MySQL数据库的基本概念、数据类型、SQL语言、约束条件、查询语言、聚合函数、子查询和多表查询等知识点。 数据库基础概念 在介绍MySQL数据库之前,首先需要了解数据库的基本概念。数据库是一个...

    实验训练1 在MySQL中创建数据库和表.docx

    "MySQL数据库创建和表创建" 本教程将指导您在MySQL中创建数据库和表,首先需要安装和配置MySQL数据库。 1. MySQL的安装和配置 在安装MySQL之前,需要下载MySQL安装文件,例如mysql-5.5.12-win32.msi。运行该程序...

    MYSQL数据库修复程序

    MySQL数据库修复程序是一种技术密集型的过程,主要用于解决数据库在运行过程中遇到的各种问题,如数据丢失、表损坏、系统崩溃等。在本场景中,我们关注的是如何通过特定工具,如Navicat,来管理和修复MySQL数据库中...

    Sql查询MySql数据库中的表名和描述表中字段(列)信息

    在MySQL数据库管理中,了解如何查询表结构以及其字段信息是非常重要的。这有助于数据库管理员和开发者更好地理解数据存储方式,优化查询效率,以及在开发过程中确保数据一致性。本篇文章将详细解析如何通过SQL查询...

Global site tag (gtag.js) - Google Analytics