mysql 的 虚拟表(DUAL)的介绍及使用场景---条件插入insert

虚拟表 DUAL

MySQL中使用select 1;不加 from table就可以执行

而在Oracle中需要满足select * from table;这样的结构

因此Oracle引入虚拟表DUAL来表示

select 1 from dual;

MySQL 5.5以上版本也引入了类似的虚拟表DUAL

但是在MySQL中执行select * from dual;

会报错:

执行select 1 from dual

应用场景

MySQL向数据库插入insert条件判断
我们插入数据insert时经常会做判断,什么时候插入,什么时候不插入,有数据的不插入,没有数据插入等情况,为了避免每次插数据之前select查询一下,今天我找到了 一条sql语句,能够在insert时进行判断,从而进行数据的添加或不添加。

 sql如下

insert into user(name,age,sex,unique_number) SELECT '张三',22,'男','11001' from DUAL where NOT EXISTS (select unique_number from user where unique_number = '11001')

下边就是测试SQL语句的图片,可以参考一下

在这里插入图片描述

第一次insert

在这里插入图片描述
第二次insert

在这里插入图片描述

 原理没有啥,一看就明白,sql替换参数改改直接用就可以

————————————————
参考链接:

MySQL向数据库插入insert条件判断_朱衣点头戈子衫的博客-CSDN博客_insert 条件判断

MySQL DUAL表的作用_三爷麋了鹿的博客-CSDN博客_dual mysql

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值