技术标签: mysql alter table if exists
sp00m..
12
我刚刚建立了一个可重用的程序,可以帮助制作DROP COLUMN幂等法:
-- column_exists:
DROP FUNCTION IF EXISTS column_exists;
DELIMITER $$
CREATE FUNCTION column_exists(
tname VARCHAR(64),
cname VARCHAR(64)
)
RETURNS BOOLEAN
READS SQL DATA
BEGIN
RETURN 0 < (SELECT COUNT(*)
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA` = SCHEMA()
AND `TABLE_NAME` = tname
AND `COLUMN_NAME` = cname);
END $$
DELIMITER ;
-- drop_column_if_exists:
DROP PROCEDURE IF EXISTS drop_column_if_exists;
DELIMITER $$
CREATE PROCEDURE drop_column_if_exists(
tname VARCHAR(64),
cname VARCHAR(64)
)
BEGIN
IF column_exists(tname, cname)
THEN
SET @drop_column_if_exists = CONCAT('ALTER TABLE `', tname, '` DROP COLUMN `', cname, '`');
PREPARE drop_query FROM @drop_column_if_exists;
EXECUTE drop_query;
END IF;
END $$
DELIMITER ;
用法:
CALL drop_column_if_exists('my_table', 'my_column');
例:
SELECT column_exists('my_table', 'my_column'); -- 1
CALL drop_column_if_exists('my_table', 'my_column'); -- success
SELECT column_exists('my_table', 'my_column'); -- 0
CALL drop_column_if_exists('my_table', 'my_column'); -- success
SELECT column_exists('my_table', 'my_column'); -- 0
评论共2页:上一页12评论#re: 用Java实现FTP批量大文件上传下载(六)--代码及示例下载回复更多评论2007-10-23 09:32 by sl学习,多谢共享。#re: 用Java实现FTP批量大文件上传下载(六)--代码及示例下载回复更多评论2007-10-23 12:01 by sl下载的例子,用浏览打开sample.html时,显示不出Applet(JDK...
如果你的项目中使用了androidx报错,报错如下:The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annot...
大家好,欢迎来到专栏《百战GAN》,在这个专栏里,我们会进行算法的核心思想讲解,代码的详解,模型的训练和测试等内容。作者&编辑 | 言有三本文资...
Jungle RoadsTime Limit:1000MS Memory Limit:10000K Total Submissions:38849 Accepted:18287 DescriptionThe Head Elder of the tropical island of Lagrishan has a problem. A b...
maven-shade-plugin将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的);对依赖的jar包进行重命名(用于类的隔离);<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <
引言在本教程中,我们将介绍如何让一个实体以动画的方式在预先定义的点之间行走。此外还将通过展示一个如何让实体朝向它所移动的方向的例子来讲解四元数的基本应用。在创作这个demo的过程中你将慢慢把代码添加到项目中,编译并观看结果。Prerequisites (略)Getting Started (略)创建场景开始之前,请注意我们在头文件定义了三个变量。mEntity将保存我们创建的实体,mNode将保存...
原文 http://developer.android.com/guide/topics/data/backup.html快速查看· 将用户数据备份到云中心以防丢失。· 如果用户升级到运行Android的新设备,程序可以恢复用户数据到新设备中。· 可方便地用BackupAgentHelper备份SharedPreference和
1 ubuntu 文件系统 根目录部分有以下子目录: /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscap
// 最近在学习springcloud的一套服务,想用自己的话总结一波。使用的技术栈是:服务注册:eureka --> zookeeper、consul、nacos负载均衡:ribbon/feign --> ribbon、loadBalancer/openFeign服务熔断,服务降级:hystrix --> resilience4j、sentien
XML的作用-不同软件间的数据传输 -不同系统间的数据传输 -不同平台间的数据共享XML四种解析方式-DOM解析 -SAX解析 -DOM4J解析 -JDOM解析 -DOM解析与SAX解析不需要额外的jar,是Java官方的解析方式。 -解析遇到乱码时可以修改xml中编码方式,或者对InputStream流进行InputStreamReader包装并指定编码方式。常用XML节点类型
说到实模式启动项(Grub/Linux),很多朋友都不知道怎么去创建。其实,在我们的电脑一般都会有一个常用独立于固件的启动选项接口,它储存系统启动配置数据,也就是BCD文件。我们可以通过BCD文件来新建实模式启动项。下面就来看看如何使用老毛桃winpe的Bootice工具新建实模式启动项(Grub/Linux)!1、 在官网下载老毛桃U盘winpe制作工具,制作一个U盘winpe启动盘2、 制作完...
2019独角兽企业重金招聘Python工程师标准>>> ...