mysql 如果表存在则重命名表
时间: 2023-07-04 13:27:55 浏览: 244
可以使用 MySQL 的 RENAME TABLE 语句来重命名表,例如:
```
RENAME TABLE table_name TO new_table_name;
```
但是,如果要判断表是否存在,可以使用以下 SQL 查询语句:
```
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='your_database_name' AND table_name='your_table_name';
```
如果查询结果为 0,则表不存在,否则表存在。因此,可以使用以下 SQL 语句来实现如果表存在则重命名表的操作:
```
SET @old_table_name = 'your_table_name';
SET @new_table_name = 'new_table_name';
SET @database_name = 'your_database_name';
SELECT COUNT(*) INTO @table_exists FROM information_schema.tables WHERE table_schema = @database_name AND table_name = @old_table_name;
IF @table_exists THEN
SET @sql = CONCAT('RENAME TABLE ', @old_table_name, ' TO ', @new_table_name);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
```
这段 SQL 语句首先查询表是否存在,如果存在则使用 RENAME TABLE 语句重命名表。注意,在使用 PREPARE 和 EXECUTE 语句执行动态 SQL 语句时,需要使用 DEALLOCATE PREPARE 释放资源。
阅读全文