Oracle 多表联合删除?--转
oracle和mysql多表删除数据的方法一大把,好多都是没经过证实的,你很可能已经被错误信息误导了,下面我以mysql两张表删除数据为例,来让给为注意到这一点,我在mysql中新建了两张表,分别是用户表和国家表,如下所示。
用户表users:
国家表country,如图:
当你看到这两张mysql表的时候,你一定认为多表数据删除的语句是这样的,其实这样是错误的!,如下。
delete from users u,country c where u.id = c.userId and u.id = 20
mysql多表删除用上面的语句会报sql syntax语法错误的,报错如下。
[SQL]
delete from users u,country c where u.id = c.userId and u.id = 20
[Err] 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 'u,country c where u.id = c.userId and u.id = 20' at line 1
mysql多表删除数据正确的方法应该使用内连接来删除,如下两条语句,可任选一句。
//语句一
delete u,c from users u INNER JOIN country c on u.id = c.userId and u.id = 20 //语句二
delete u,c from users u INNER JOIN country c where u.id = c.userId and u.id = 10
这个时候你一定会认为,oracle删除多表数据能否用上面这两条语句?答案是:不行!,它会报如下错误。
“ORA-00933:SQL命令未正确使用”
说明oracle使用上面的两条语句多表删除数据是不行的,那oracle多表删除数据该怎么写呢?命令如下。
//oracle中只能分开执行
delete from users where users.id = 20
delete from country where country.userId = 20
在oracle中不能进行多表关联删除,这可能跟oracle数据库的安全机制有关,你只能把上面的语句分成两条sql语句来执行才可以实现oracle的多表删除。
转自 :http://www.tpyyes.com/a/mysql_oracle/2017/1116/383.html
Oracle 多表联合删除?--转的更多相关文章
- oracle多表关联删除数据表记录方法
oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.i ...
- Mybatis oracle多表联合查询分页数据重复的问题
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于 ...
- oracle多表关联删除的两种方法
oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.i ...
- oracle 创建表,删除表,修改表,查询表
1,获取当前用户下的所有表信息 => SELECT * FROM user_tables 1.1,查询某一张表的字段信息:SELECT * FROM user_tab_columns w ...
- Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结
创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字段类型 默认值 是否为空, 字段名3 字段类型 默认值 是否为空, ...... ); 创建一个us ...
- oracle 创建表、删除表、添加字段、删除字段、表备注、字段备注、修改表属性
1.创建表 create table 表名( classid number() primary key, 表字段 数据类型 是否允许为空(not null:不为空/null:允许空) 默认值(defa ...
- Oracle创建表、删除表、修改表、字段增删改 语句总结
创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字段类型 默认值 是否为空, 字段名3 字段类型 默认值 是否为空, ...... ); 创建一个us ...
- mysql 多表联合更新
UPDATE mall_order moLEFT JOIN mall_order_goods mog ON mo.id = mog.order_idSET mo.ratio=0.08WHERE mog ...
- oracle系统表的查询
oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查 ...
随机推荐
- appium desired_caps参数大全
appium desired_caps参数大全 --------------------------------------------------------- 常用参数记录 ----------- ...
- HTTP最常见的响应头
HTTP最常见的响应头如下所示: l Allow:服务器支持哪些请求方法(如GET.POST等): l Content-Encoding:文档的编码(Encode)方法 ...
- VMware的下载与安装
VMware的下载与安装 一.虚拟机的下载 1.进入VMware官网,点击左侧导航栏中的下载,再点击图中标记的Workstation Pro,如下图所示. 2.根据操作系统选择合适的产品,在这里以Wi ...
- C++中的swap(交换函数)
交换两个变量的值很简单. 比如 int a = 1; b = 2; 交换a b的值 这个很简单 很容易想到的是找个中间变量比如 int temp = a; a = b; b = temp; 不需要 ...
- java-TheadPoolExecutor
Executor的两极调度模型 第一级:java多线程程序把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程: 第二级:操作系统内核将这些线程映射到处 ...
- SAS学习笔记20 CAT函数
- Centos 安装 graylog
安装文档 安装nginx做反向代理 (如果生产环境通过端口管理则用不到) 通过yum安装方便以后升级 yum install nginx chkconfig nginx on service ngin ...
- tuxedo10g3R的安装过程(原文url:http://www.cnblogs.com/xianfish/articles/1955244.html)
RHEL 5.1 32Bit 安装配置TUXEDO 10R3 [前言]: 目的: 在Linux上安装配置Tuxedo 10R3 环境: RHEL 5.1 32Bit [前提条件]: 下载Tuxed ...
- linux, kill掉占用60%多cpu的进程,几秒后换个pid 和 command 又出现
linux, kill掉占用60%多cpu的进程,几秒后换个pid 和 command 又出现?快速清理木马流程.假设木马的名字是xysbqaxjqy,如果top看不到,可以在/etc/init.d目 ...
- myeclipse 出现换行符和空格符 解决方案 换行出现乱码
请参看百度经验 https://jingyan.baidu.com/article/acf728fd2639e4f8e510a399.html myeclipse 2014 自定义视图Customiz ...