MYSQL修改表插入字段的判断以及workbench报错问题

SQL小王子



前言

主要总结MYSQL的一些工作中遇到的操作问题


一、Mysql修改表

Mysql在执行诸如以下改表操作时,只能执行一次,执行第二次会报dumplicate错误

LTER TABLE vrv_paw_rule ADD COLUMN thresholdMin  BIGINT;

二、代码

1.解决办法

代码如下(示例):

use xxx  //此条针对使用Mysqlworkbench进行测试的用户,不加此条会报错
//No database selected Select the default DB to be used by double-clicking its nam
-- ----------------------------
-- 判断 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在则添加; 存在则修改字段类型
DELIMITER ??
DROP PROCEDURE IF EXISTS schema_change??
CREATE PROCEDURE schema_change()
BEGIN
IF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = DATABASE()  AND table_name = 'vrv_paw_rule' AND column_name = 'thresholdMin') THEN
    ALTER TABLE vrv_paw_rule ADD COLUMN thresholdMin  BIGINT;
ELSE    
    ALTER TABLE vrv_paw_rule MODIFY COLUMN thresholdMin BIGINT ;
END IF; 
END??
DELIMITER ;

CALL schema_change();

2.读入数据

delimit命令:

就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了,即改变输入结束符。
默认情况下,delimiter是分号“;”。
在命令行客户端中,如果有一行命令以分号结束,
那么回车后,mysql将会执行该命令。
但有时候,不希望MySQL这么做。因为可能输入较多的语句,且语句中包含有分号。
默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。
因为mysql一遇到分号,它就要自动执行。
这种情况下,就可以使用delimiter,把delimiter后面换成其它符号,如//或$$。
此时,delimiter作用就是对整个小段语句做一个简单的封装。
此命令多用在定义子程序,触发程序等mysql自己内嵌小程序中


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Mysql的程序调用,对重复插入字段导致dumplicate报错的解决思路

对此链接原作者的优化,修复workbench执行报错问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我们都有光明的未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值