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如何获得数据库表中各字段的字段名
基于存储过程的MySQL数据库BLOB字段访问.pdf
MySql练习1:创建数据库表news.zip MySql练习1:创建数据库表news.zip MySql练习1:创建数据库表news.zip
MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字; <新字段名> 为所要添加的字段的名字; <数据类型> 为所要添加的...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...
MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).MySql数据库的列类型(字段类型).
NULL 博文链接:https://gaochunhu.iteye.com/blog/2409829
注意:MySQL对象包括数据库、表、视图、存储过程或存储函数等。这些对象名必须符合一定规则或约定,各个DBMS的约定不完全相同。 命名规则 表的概念 名字可以由当前字符集中的任何字母数字字符组成,下划线(_)和...
创建另外一个存储过程sell_update,在其中调用第一个存储过程,如果给定参数为0,则修改由第一个存储过程插入记录的是否发货字段为'已发货',如果给定参数为1则删除第一个存储过程插入的记录,并将操作结果输出。...
本文是mysql 数据库 问题一 将表一的数据导入表二...在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人都说用存储过程什么的解决,其实使用insert 和 select 结合就可以很好的解决这个问题啊
在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中...
本文实例讲述了mysql创建存储过程实现往数据表中新增字段的方法。分享给大家供大家参考,具体如下: 需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作;若该字段不存在,则新增) 百度了n久,...
提纲 规范 基础规范 命名规范 库表规范 字段规范 索引规范 开发环境 优化 MySQL数据库设计、优化全文共24页,当前为第2页。 规范 基础规范 全部使用InnoDB引擎,MyISAM适用场景非常少 字符集:latin1 => utf8 => ...
全国各省、市、县、镇、村数据库mysql脚本,单表存储,精确到村一级,包含地区名称、地区编码、上级名称、上级编码、区划层级字段
单个列表中,需要显示不同快递公司的配送区域,相关表中存储是的对应的地区id字段 2主表中记录相关业务数据,然后关联相地址表处理结果集,就可以得到我们需要的结果 原数据 最终需要的数据 执行的SQL如下 SELECT ...
本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...
两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
MySQL选择数据库、修改数据库(修改数据库字符集、存储字符符格式)、删除数据库 选择数据库为什么要选择数据库? 因为数据是存储到数据表,表存储在数据库下。如果要操作数据,那么必须要进入到对应的数据库才行。 ...
此文件是本人亲自开发,测试,编写的,里面的内容绝对的物有所值,文件内容包括MySQL数据库模型图,完整的数据库语句,以及最重要的数据库文档说明,说明中包含数据库所有表结构以及相互之间的关联关系。很适合...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...