如何一次从两个表中删除记录

时间:2014-11-10 11:31:07

标签: mysql

我有以下表格:

create table emp_data(
      emp_code number primary key, 
      emp_name varchar2(25)not null,
      dept_name varchar2(25),
      manager_name varchar2(25));

create table emp_asi(
      asi_no number primary key, 
      asi_desc varchar2(50), 
      asi_status varchar2(20), 
      created_by varchar2(20));

create table emp_rel(
      asi_no number, 
      asi_emp number,
      asi_date date,
      comp_date date, 
constraint fk_asi_no foreign key(asi_no)
references emp_asi(asi_no), 
constraint fk_asi_emp foreign key(asi_emp) references emp_data(emp_code));

Emp

table record: emp_code  emp_name    dept_name   manager_name
              1001      ABC         MNOP        S

Asi

table record: asi_no    asi_desc    asi_status    created_by
              101       sdslk       sdfg           O

Emp_asi

table record: asi_no    emp_code 
              101       1001   

如何在单个查询中从 \ temp 表和 emp_asi 中删除1001条记录。

2 个答案:

答案 0 :(得分:0)

可能。

无论如何,您可以在一个transacrtion中删除它们。

阅读http://dev.mysql.com/doc/refman/5.0/en/commit.html

上的手册

答案 1 :(得分:0)

好吧,不是单个查询,但是如果您使用ON DELETE CASCADE定义了外键,则不需要为它是主键的表打扰它。 警告:在实施之前,请先阅读CASCADE的副作用。