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

mysqlmysqli database更新于 2023/12/8 9:32:00

如果您尝试创建表并且表名已经存在,则 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)

相关文章