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报错的解决思路