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;

会报错:

mysql 的 虚拟表(DUAL)的介绍及使用场景---条件插入insert_第1张图片

应用场景

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语句的图片,可以参考一下

mysql 的 虚拟表(DUAL)的介绍及使用场景---条件插入insert_第2张图片

第一次insert

mysql 的 虚拟表(DUAL)的介绍及使用场景---条件插入insert_第3张图片
第二次insert

mysql 的 虚拟表(DUAL)的介绍及使用场景---条件插入insert_第4张图片

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

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

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

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

你可能感兴趣的:(mysql,sql,数据库,mysql)