本文是针对MySql数据库创建的SQL脚本,别搞错咯。

判断表是否存在,不存在就可新增

CREATE TABLE IF NOT EXISTS `mem_cardtype_resource` (

...

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

判断表字段是否存在,不存在就可新增、修改、删除,移除修改列名

DROP PROCEDURE IF EXISTS Pro_Temp_ColumnWork;

DELIMITER$$

-- 1表示新增列,2表示修改列类型,3表示删除列

CREATE PROCEDURE Pro_Temp_ColumnWork(TableName VARCHAR(50),ColumnName VARCHAR(50),SqlStr VARCHAR(4000),CType INT)

BEGIN

DECLARE Rows1 INT;

SET Rows1=0;

SELECT COUNT(*) INTO Rows1 FROM INFORMATION_SCHEMA.Columns

WHERE table_schema= DATABASE() AND table_name=TableName AND column_name=ColumnName;

-- 新增列

IF (CType=1 AND Rows1<=0) THEN

SET SqlStr := CONCAT( 'ALTER TABLE ',TableName,' ADD COLUMN ',ColumnName,' ',SqlStr);

-- 修改列类型

ELSEIF (CType=2 AND Rows1>0) THEN

SET SqlStr := CONCAT('ALTER TABLE ',TableName,' MODIFY ',ColumnName,' ',SqlStr);

-- 删除列

ELSEIF (CType=3 AND Rows1>0) THEN

SET SqlStr := CONCAT('ALTER TABLE ',TableName,' DROP COLUMN ',ColumnName);

ELSE SET SqlStr :='';

END IF;

-- 执行命令

IF (SqlStr<>'') THEN

SET @SQL1 = SqlStr;

PREPARE stmt1 FROM @SQL1;

EXECUTE stmt1;

END IF;

END$$

DELIMITER ;

-- 当前数据库 TableName表名 ColumnName列名

-- 新增列

-- CALL Pro_Temp_ColumnWork ('表名','字段名','字段参数 ', 1);

-- CALL Pro_Temp_ColumnWork ('表名','字段名','int(11) NULL DEFAULT NULL AFTER `xxxxxxxxxxx`; ', 1);

-- 删除列

-- CALL Pro_Temp_ColumnWork ('e_handcard_control','EntranceType','', 3);

-- 最后再执行一遍删除存储过程

DROP PROCEDURE IF EXISTS Pro_Temp_ColumnWork;

mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小

如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...

两种获取MySql数据库中所有表的主键和外键约束信息的Sql语句

最近在写Rafy底层的一些东西,在数据库方面把MySql数据库集成到里面去,里面有一个需求,需要获取非系统数据库,也就是我们自己建立的数据库中所有表的主键和外键元数据列表. 第一种方法:是网上的方法, ...

MySQL 数据库中用户表中口令登陆设置

工具:MyEclipse8.5.apache-tomcat-6.0.43.MySQL5.6 问题:项目是同事发给我,正常运行之后,使用MySQL表里的管理员数据登陆时,提示“仅限于非总部工号登录!” ...

统计mysql数据库中数据表&sol;字段等数量的sql

1.查询一个表中有多少个字段: SELECT COUNT(*) FROM information_schema. COLUMNSWHERE table_schema = '数据库名'AND table ...

java中访问mysql数据库中的表结构信息

package cn.hncu.meta; import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.Re ...

查看 MySQL 数据库中每个表占用的空间大小

TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小 SELE ...

查询mysql数据库中所有表名

查找所有表的语句 select table_name from information_schema.tables where table_schema='当前数据库';

MySQL数据库查看数据表占用空间大小和记录数

MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...

为什么在MySQL数据库中无法创建外键?&lpar;MyISAM和InnoDB详解&rpar;

问题描述:为什么在MySQL数据库中不能创建外键,尝试了很多次,既没有报错,也没有显示创建成功,真实奇了怪,这是为什么呢? 问题解决:通过查找资料,每次在MySQL数据库中创建表时默认的情况是这样的: ...

随机推荐

SSH实战 &&num;183&semi; JAVA发送邮件相关

发送激活邮件 电子邮箱:邮件服务器上的一块空间: 邮件服务器:类比于web服务器(tomcat),有相应的服务器软件: 邮件协议:大公司发送和接收服务器分开,也可以都用一个服务器.           ...

python学习三

输入与输出 print()在括号中加上字符串,就可以向屏幕上输出指定的文字. >>>print('hello world')hello world print()函数也可以接受多个字 ...

【转】Java跨平台原理

Logo

一站式 AI 云服务平台

更多推荐