MySQL刪除資料表

2021-10-02 04:52:39 字數 2653 閱讀 8693

目錄

mysql刪除資料表

1.刪除沒有被關聯的表

2.刪除被其他表關聯的主表

在 mysql中,使用drop table可以一次刪除乙個或多個沒有被其他表關聯的資料表。語法格式如下:

drop table [if exists] 表1,表2,...表n;
其中「表n」指要刪除的表的名稱,後面可以同時刪除多個表,只需將要刪除的表名依次寫在後面,相互之間用逗號隔開即可。如果要刪除的資料表不存在,則 mysql會提示一條錯誤資訊,「 error 1051(42s02): unknown table '表名'」。引數「if exists」用於在刪除前判斷刪除的表是否存在,加上該引數後,再刪除表的時候,如果表不存在,sql語句可以順利執行,但是會發出警告(warning)。

【例子】刪除資料表tb_emp2,sql語句如下:

mysql> drop tables if exists tb_emp2;

query ok, 0 rows affected (0.22 sec)

​mysql> show tables;

+-------------------+

| tables_in_test_db |

+-------------------+

| tb_dept1         |

| tb_emp1           |

| tb_emp5           |

+-------------------+

3 rows in set (0.00 sec)

資料表之間存在外來鍵關聯的情況下,如果直接刪除父表,結果會顯示失敗。原因是直接刪除,將破壞表的參照完整性。如果必須要刪除,可以先刪除與它關聯的子表,再刪除父表,只是這樣同時刪除了兩個表中的資料。但有的情況下可能要保留子表,這時如要單獨刪除父表,只需將關聯的表的外來鍵約束條件取消,然後就可以刪除父表,下面講解這種方法。 在資料庫中建立兩個關聯表,首先,建立表 tb_dept2,sql語句如下:

mysql> create table tb_dept2(

-> id int(11) primary key,

-> name varchar(22),

-> loaction varchar(50));

query ok, 0 rows affected (0.12 sec)

建立表tb_emp2,sql語句如下:

mysql> create table tb_emp2(

-> id int(11) primary key,

-> name varchar(25),

-> deptid int(11),

-> salary float,

-> constraint fk_emp_dept foreign key(deptid) references tb_dept2(id)

-> );

query ok, 0 rows affected (0.10 sec)

先解除關聯子表tb_emp2的外來鍵約束

mysql> alter table tb_emp2 drop foreign key fk_emp_dept;

query ok, 0 rows affected (0.20 sec)

records: 0 duplicates: 0 warnings: 0

​mysql> show create table tb_emp2\g;

*************************** 1. row ***************************

table: tb_emp2

create table: create table `tb_emp2` (

`id` int(11) not null,

`name` varchar(25) character set latin1 default null,

`deptid` int(11) default null,

`salary` float default null,

primary key (`id`),

key `fk_emp_dept` (`deptid`)

) engine=innodb default charset=utf8

1 row in set (0.00 sec)

再刪除**tb_emp2

mysql> drop table tb_emp2;

query ok, 0 rows affected (0.07 sec)

​mysql> show tables;

+-------------------+

| tables_in_test_db |

+-------------------+

| tb_dept1         |

| tb_dept2         |

| tb_emp1           |

| tb_emp5           |

+-------------------+

4 rows in set (0.00 sec)

MySQL 刪除資料表

mysql中刪除資料表是非常容易操作的,但是你再進行刪除表操作時要非常小心,因為執行刪除命令後所有資料都會消失。以下為刪除mysql資料表的通用語法 drop table table name 以下例項刪除了資料表runoob tbl root host mysql u root penter pa...

MySQL 刪除資料表

mysql中刪除資料表是非常容易操作的,但是你再進行刪除表操作時要非常小心,因為執行刪除命令後所有資料都會消失。以下為刪除mysql資料表的通用語法 drop table table name 在mysql 命令提示視窗中刪除資料表sql語句為drop table 以下例項刪除了資料表tutoria...

mysql 刪除表 命令 MySQL 刪除資料表

mysql 刪除資料表 mysql中刪除資料表是非常容易操作的,但是你再進行刪除表操作時要非常小心,因為執行刪除命令後所有資料都會消失。語法以下為刪除mysql資料表的通用語法 drop table table name 在命令提示視窗中刪除資料表 在mysql 命令提示視窗中刪除資料表sql語句為...