问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 存储过程中的 if exists 判断问题

发布网友 发布时间:2022-05-05 17:03

我来回答

5个回答

懂视网 时间:2022-05-07 18:19

bitsCN.com
以下这样写会报错:
[Error] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end if' at line 8 create procedure test(in a int) if a > 1 then select 1; elseif a>2 then select 2; else end if; [xhtml]create procedure test(in a int) if a > 1 then select 1; elseif a>2 then select 2; else end if; 应改成以下这样: create procedure test(in a int) if a > 1 then select 1; elseif a>2 then select 2; else -- do nothing -- set @tmp=1; end if; 作者 zhu473105308 bitsCN.com

热心网友 时间:2022-05-07 15:27

  mysql没有drop index index_name if exists on table_name这样的语法,所以写一个存储过程来判断,如果存在就删除后再创建新的索引。存储过程如下:
--
-- procere of delete index
--
drop procere if exists Del_idx;
DELIMITER $$
CREATE PROCEDURE Del_idx(IN p_tablename varchar(200), IN p_idxname VARCHAR(200))
begin
  DECLARE str VARCHAR(250);
  SET @str=concat(' drop index ',p_idxname,' on ',p_tablename);
  SELECT COUNT(*) INTO @cnt FROM information_schema.statistics WHERE TABLE_NAME=p_tablename AND INDEX_NAME=p_idxname;
  if @cnt >0 then
    PREPARE stmt FROM @str;
    EXECUTE stmt ;
  end if;
end $$
  DELIMITER ;
  使用时传入表名和索引名即可,如CALL Del_idx('tableA', 'indexA');

热心网友 时间:2022-05-07 16:45

SELECT没有IF EXISTS 语法,你可以用select count(*) from information_schema.tables where table_schema='your_schema' and table_name='your_tab';看返回0还是1来判断。

热心网友 时间:2022-05-07 18:20

select if(count(*),1,0) from (select * from s_face limit 1) t
一句sql就能得到你的答案,为什么要用个存储过程

热心网友 时间:2022-05-07 20:11

问题不明确
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 基础差的裸考事业单位能考多少分 《新世界》田丹抛出新论断,谁是最大嫌疑人? 内蒙古事业编考试职业能力测试考多少分能上岸 哪个不是电视剧红色中的角色 新世界中,田丹明明知道火车站都是特务,为什么不跑? MySQL存储过程中能不能用IF exists(SELECT * from form__rmms_pofm... 事业单位A职测和综应大家分别考多少分上岸的呀? 交通银行信用卡那种卡好 交通信用卡什么好 遮瑕笔和遮瑕膏,哪个的遮瑕效果更好? 夏天用遮瑕液好还是用遮瑕膏好呢? 遮瑕膏,遮瑕霜,遮瑕液,哪个遮盖能力最强,哪个最差? 遮瑕液 遮瑕笔 遮瑕膏 哪个好用? 遮瑕膏和遮瑕液哪个好? 145mm口罩大人可以带吗 银行卡不在手里能不能改密码? 遮瑕液好还是遮瑕膏好用? 给手机下载电影最好的网站 我想在手机上下载电影,求可下载电影的网站? 可以手机下载的电影网站 新世界电视剧中,铁林追杀田丹那集中那个*是谁演的?急求,急求,急求 《新世界》被公认是小红袄的高医生为什么要救田丹? 红色电视剧田丹的父亲叫田鲁宁,新世界电视剧说田丹的父亲叫田怀中,到底哪个是田丹的父亲? 我电脑的开始菜单怎么竖在旁边了 历届高考中化学有关非金属及其化合物的考题 《新世界》中十七为什么非要杀田丹? 带叶字的网名有哪些? 求三个字的网名 要带 叶 字的 化学高考基础题 这是怎么回事?开始菜单栏变成了竖着的?怎样变回原来在电脑下面的样子... 高考化学题(江苏某选择题) 帮我取一个带"叶"的三个字网名 求一“凌”字开头和“叶”字开头的三字网名,古风简单的 开始菜单栏变竖了,怎么还原 高考化学选择题一道 富途牛牛 不能存入人民币 投资ETF的风险与收益是什么简答? 富途牛牛如何外汇入金 求有诗意的作文题目 唯美些 助学成就梦想 狮子座男生喜欢你的表现有哪些?