mysql 字段判断是否存在_mysql 新增字段时判断字段是否存在

mysql 字段判断是否存在_mysql 新增字段时判断字段是否存在1 问题引出为了保证数据的正确性 代码的健壮性 我们必须对一些边界条件做一个判断 所以才会把修改表结构搞得如此复杂 mysql 新增字段时判断字段是否存在 本来是一个很小的问题 因为以前都是使用 postgreSql sqlserver 上来就 ifnotexist 结果 mysql 并不吃这一套 看看这段代码 IFNOTEXISTS SELECT1FROMI

1、问题引出

为了保证数据的正确性,代码的健壮性,我们必须对一些边界条件做一个判断,所以才会把修改表结构搞得如此复杂。

mysql 新增字段时判断字段是否存在,本来是一个很小的问题,因为以前都是使用 postgreSql、sqlserver ,上来就 if not exist ,结果mysql并不吃这一套,看看这段代码:

IF NOT EXISTS (

SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = ‘t_subject’

AND COLUMN_NAME = ‘subject_status’

)THEN

ALTER TABLE t_subject ADD COLUMN `subject_status` int(1) DEFAULT ‘0’ COMMENT ‘0:未被引用;1:已被用’;

END IF;

在 navicat执行时总出现错误,纳闷啊……………………….

2、问题分析

网上查了很多,发现不能这样直接执行脚本,那就没办法了,变态的写法就是直接定义存储过程,然后执行存储过程,最后删除存储过程,看到这你是不是想呵呵了,无论怎样,这最终是一种解决方法

3、问题解决

// 创建存储过程 名称定义 以temp开头意为临时的,Alter_Table_T_Subject 意为修改T_Subject, 意为存储过程创建的日期

CREATE PROCEDURE Temp_Alter_Table_T_Subject_()

BEGIN

IF NOT EXISTS (SELECT 1

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = ‘t_subject’

AND COLUMN_NAME = ‘subject_status’)

THEN

ALTER TABLE t_subject ADD COLUMN `subject_status` int(1) DEFAULT ‘0’ COMMENT ‘0:未引用;1:已被用’;

END IF;

END

// 调用存储过程

CALL Temp_Alter_Table_T_Subject_()

// 删除存储过程

DROP PROCEDURE Temp_Alter_Table_T_Subject_;

4、真诚希望

希望有更好的方式,否则这个太变态了,我是不是还要写一个函数,来判断这个存储过程是否已经存在了,我去太复杂了,真诚希望有更好的方式,可以留言!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218034.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:11
下一篇 2026年3月18日 上午8:12


相关推荐

  • python之懒惰属性(延迟初始化)

    Python对象的延迟初始化是指,当它第一次被创建时才进行初始化,或者保存第一次创建的结果,然后每次调用的时候直接返回该结果。延迟初始化主要用于提高性能,避免浪费计算,并减少程序的内存需求。1.

    2021年12月29日
    39
  • linux 查看pid占用的端口_如何通过端口号查进程

    linux 查看pid占用的端口_如何通过端口号查进程Linux查看Java进程PID、端口号和内存占用脚本Linux查看Java进程PID、端口号和内存占用脚本背景查询PID查询占用端口查询内存占用百分比脚本使用背景正常情况下,一个jps-ml就可以查看机器上有多少Java进程以及它们的PID,如果还要看端口号,甚至内存占用,就还要配合netstat以及ps等查询,如果直接使用一个命令就能查出所有信息多…

    2022年8月23日
    9
  • 数据结构与算法经典书籍——大话数据结构(带配套源码)

    数据结构与算法经典书籍——大话数据结构(带配套源码)书本下载链接:链接:https://pan.baidu.com/s/1jgVnbBZoLgA8pshpxbapOQ密码:577l配套程序链接:https://pan.baidu.com/s/1HYka42KngWT2el7T0HO7LA密码:i6hw虽说数据结构以美国人MarkAllenWeiss写的《数据结构与算法分析——C语言实现》最好,但是我发现他的书让人很不容易理解,可能我们…

    2022年6月3日
    57
  • Java SoftReference

    Java SoftReferenceSoftReference的语义就是当内存不够用的时候,GC会回收SoftReference所引用的对象。所以,在memorysensitive的程序中将某些大型数据设置成SoftReference再合适不过了。创建一个SoftReference:[code="java"]Objectobj=newObject();SoftReferencesoftRef=…

    2025年10月8日
    4
  • meta标签设置用极速模式打开网页

    meta标签设置用极速模式打开网页1浏览器集成了多种浏览器内核,需要强制使用极速模式<metaname=”renderer”content=”webkit”/>2meta标签中X-UA-Compatible属性的使用的极速模式<metahttp-equiv=”X-UA-Compatible”content=”IE=edge,chrome=1″/>…

    2025年6月13日
    7
  • Kimi K2.5— 月之暗面kimi开源的全新一代全能旗舰模型

    Kimi K2.5— 月之暗面kimi开源的全新一代全能旗舰模型

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号