开始以为和SQL Server一样,使用not exists进行判断,结果不行:

IF NOT EXISTS (SELECT 1 FROM vrv_paw_template WHERE templateName=‘自定义‘ OR templateFileName=‘policycustom‘ LIMIT 1)

INSERT INTO vrv_paw_template(templateName,templateFileName,createTime,updateTime) VALUES(‘自定义‘,‘policycustom‘,NOW(),NOW());

END IF

正确的写法:

INSERT INTO vrv_paw_template(templateName,templateFileName,createTime,updateTime)

SELECT ‘自定义‘,‘policycustom‘,NOW(),NOW()

FROM DUAL WHERE NOT EXISTS (

SELECT 1 FROM vrv_paw_template WHERE templateName=‘自定义‘ OR templateFileName=‘policycustom‘ LIMIT 1

);

注释:dual 是个临时表

mysql官方对这个表的解释吧(http://dev.mysql.com/doc/refman/5.0/en/select.html):

DUAL is purely for the convenience of people who require that all SELECT statements should have FROM and possibly other clauses. MySQL may ignore the clauses. MySQL does not require FROM DUAL if no tables are referenced.

官方的解释说:纯粹是为了满足select … from…这一习惯问题,mysql会忽略对该表的引用。

把我发现的三个应用地方都加上:

select express from dual #这条sql就类似上面的查看系统时间一样。把express替换成表达式或函数就行

select express from dual where condition #这条sql只是对上面的一点扩展 加上一个where条件。其实这个where条件跟我们平时使用的where条件没什么区别。执行的时候也是先判断where子句是否成立,满足然后再执行select中的express,最后返回express执行的值;如果where子句不成立,则返回空。比如:select 1+1 from where 1=1,将返回2。

第三个就是一条比较实用的SQL语句了!你否想过:插入数据时先判断一下这条 记录是否已存在这个问题!?也许很多时候为了解决这个问题,你会先select一下,根据他的结果再决定是否继续写入数据库。但是用dual这个表,可以让你仅一条SQL就可以解决这个问题哦!

SQL就是这样写的:

INSERT INTO table  (primarykey, field1, field2, ...)  SELECT key, value1, value2, ...  FROM dual  WHERE not exists (select * from table where primarykey = id);

时间: 11-11

mysql 自定义函数 找不到表,mysql判断表记录是否存在,不存在则插入新纪录相关推荐

  1. mysql 自定义函数 找不到表_mysql 自定义函数

    新建: Create function function_name(参数列表)returns返回值类型 函数体 函数名,应该合法的标识符,并且不应该与已有的关键字冲突. 一个函数应该属于某个数据库,可 ...

  2. 数据库系列之mysql 自定义函数function,函数和存储过程的区别

    mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...

  3. MySQL自定义函数(四十六)

    MySQL自定义函数 一.什么是MYSQL自定义函数? mysql当中的自定义函数,我们简称为UDF,它实际上是一种对MySQL扩展的途径,其用法与内置函数相同. 二.自定义函数应该具备哪些条件? 我 ...

  4. MySQL自定义函数创建与使用总结

    MySQL自定义函数创建与使用总结 MySQL自定义函数和存储过程类似,也需要在数据库中创建并保存.它与存储过程一样,都是由SQL语句和控制语句组成的代码片段,可以被应用程序和其他SQL语句调用. M ...

  5. mysql自定义函数实现

    mysql自定义函数实现 环境准备 查看mysql版本 select version(); 查看mysql存储引擎 show variables like '%storage_engine%'; 创建 ...

  6. MySql自定义函数的定义和使用

    1.MySQL自定义函数简介 在MySQL中使用自定义函数也需要相应的要求,语法如下, 创建新函数: Create function function_name(参数列表) returns返回值类型 ...

  7. mysql自定义函数-随机生成人员姓名

    ​   由于对自定义函数的使用比较少,这里仅做个记录,方便以后使用的时候直接从这里面进行摘录使用. 创建自定义函数 -- mysql自定义函数-随机生成姓名 DELIMITER $$ DROP FUN ...

  8. mysql自定义函数、存储过程、游标、触发器、事件(定时任务)

    创建函数FUN_GET_ORG_CHILD(rootId) CREATE FUNCTION `FUN_GET_ORG_CHILD`(rootId varchar(100))RETURNS varcha ...

  9. mysql 自定义函数function,函数和存储过程的区别

    From: https://blog.csdn.net/u010365819/article/details/80470448 1.MySQL自定义函数简介 在MySQL中使用自定义函数也需要相应的要 ...

  10. mysql自定义函数示例代码,以及属性介绍

    以下是一个MySQL自定义函数的示例代码,该函数实现了将指定字符串中的大写字母转换为小写字母的功能: DELIMITER $$ CREATE FUNCTION to_lower(str VARCHAR ...

最新文章

  1. 二叉树:二叉搜索树实现 逆序数问题
  2. 用半机械器官,打开发育生物学领域的黑匣子
  3. 一文看尽2018全年计算机视觉大突破
  4. mysql需要下载调试_Mysql安装和调试
  5. SQL总结(快速参考)
  6. python神经网络实例_Python编程实现的简单神经网络算法示例
  7. 2-2hadoop概述
  8. 马斯克开始行动:下调Twitter Blue订阅费 禁止广告
  9. 【实习之T100开发】Genero FGL (TIPTOP4GL) 学习笔记(1)
  10. 盘点那些跨界玩到飞起的程序员们!
  11. Java分布式面试题( Session分布式解决方案)
  12. 神经网络自适应反馈控制设计
  13. 常用原型图绘制工具比较
  14. 大话设计模式之爱你一万年:第十三章 行为型模式:策略模式:女友在手,说走就走:1.策略模式概念
  15. Android实现税博客,Android个人所得税计算器
  16. 计算机硬盘只显示c盘,电脑只显示C盘我们应该怎么办
  17. 计算机考试的话语,为考试加油的暖心句子 期末考试加油鼓励的话
  18. Ubuntu图形界面升级方法
  19. tplink android管理软件,tplink路由器app下载
  20. ChinaJoy现场展示

热门文章

  1. Spring入门篇——第4章 Spring Bean装配(下)
  2. 【JZOJ4832】【NOIP2016提高A组集训第3场10.31】高维宇宙
  3. 自动化测试环境搭建--Python及selenium
  4. 字符串过滤html代码
  5. Unity 烘焙材质到单一贴图的脚本
  6. 解决Linux下SSH等终端乱码问题
  7. hnu rounting 解题报告
  8. C语言中malloc,calloc,realloc,free的语法与作用
  9. 一段挺有用的小SCRIPT
  10. 【Spring-AOP】底层类AbstractAutoProxyCreator分析