SQL

[MySQL] 다수의 테이블에서 데이터 동시 삭제하기

tornado 2004. 10. 27. 14:13

mysql> create table aa (
    ->   idx int unsigned not null auto_increment,
    ->   name varchar(20) not null,
    ->
    ->   Constraint pk_idx PRIMARY KEY(idx)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> create table bb(
    ->    idx int unsigned not null auto_increment,
    ->    parent int unsigned not null,
    ->    name varchar(20) not null,
    ->    primary key(idx)
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> insert into aa values(null, '111');
Query OK, 1 row affected (0.00 sec)

mysql> insert into aa values(null, '222');
Query OK, 1 row affected (0.00 sec)

mysql> insert into aa values(null, '333');
Query OK, 1 row affected (0.00 sec)

mysql> select * from aa;
+-----+------+
| idx | name |
+-----+------+
|   1 | 111  |
|   2 | 222  |
|   3 | 333  |
+-----+------+
3 rows in set (0.00 sec)

mysql> insert into bb values(null, 2, 'bb222');
Query OK, 1 row affected (0.00 sec)

mysql> insert into bb values(null, 2, 'bb222');
Query OK, 1 row affected (0.00 sec)

mysql> insert into bb values(null, 2, 'bb222');
Query OK, 1 row affected (0.00 sec)

mysql> select * from bb;
+-----+--------+-------+
| idx | parent | name  |
+-----+--------+-------+
|   1 |      2 | bb222 |
|   2 |      2 | bb222 |
|   3 |      2 | bb222 |
+-----+--------+-------+
3 rows in set (0.00 sec)

mysql> delete aa, bb from aa, bb where aa.idx = bb.parent;
Query OK, 4 rows affected (0.00 sec)

mysql> select * from aa;
+-----+------+
| idx | name |
+-----+------+
|   1 | 111  |
|   3 | 333  |
+-----+------+
2 rows in set (0.00 sec)

mysql> select * from bb;
Empty set (0.00 sec)

mysql>