如何在MySQL中检查表是否存在,如果不存在则创建?


如果您尝试创建一个已存在的表,MySQL 将会发出警告信息。让我们验证一下这个概念。

这里,我们正在创建一个已存在的表:

mysql> CREATE TABLE IF NOT EXISTS DemoTable
   (
   CustomerId int,
   CustomerName varchar(30),
   CustomerAge int
   );
Query OK, 0 rows affected, 1 warning (0.05 sec)

表名 DemoTable 已经存在。让我们检查一下警告信息。

以下为查询:

mysql> show warnings;

这将产生以下输出,即警告信息:

+-------+------+------------------------------------+
| Level | Code | Message                            |
+-------+------+------------------------------------+
| Note  | 1050 | Table 'demotable' already exists   |
+-------+------+------------------------------------+
1 row in set (0.00 sec)

让我们更改表名,创建一个不存在的表:

mysql> CREATE TABLE IF NOT EXISTS DemoTable2
   (
   CustomerId int,
   CustomerName varchar(20),
   CustomerAge int
   );
Query OK, 0 rows affected (0.56 sec)

由于该表不存在,因此上面的表已成功创建。

以下是用 insert 命令向表中插入记录的查询:

mysql> insert into DemoTable2 values(101,'Chris',23);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable2 values(102,'Robert',24);
Query OK, 1 row affected (0.12 sec)

以下是用 select 命令显示表中记录的查询:

mysql> select *from DemoTable2;

这将产生以下输出

+------------+--------------+-------------+
| CustomerId | CustomerName | CustomerAge |
+------------+--------------+-------------+
| 101        | Chris        | 23          |
| 102        | Robert       | 24          |
+------------+--------------+-------------+
2 rows in set (0.00 sec)

更新于:2019年7月30日

1K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告