mysql不覆盖同名表

导读:在使用MySQL时,有时候会遇到同名表的情况 。如果直接执行创建表的操作,就会覆盖原有的同名表,造成数据丢失 。本文将介绍如何在MySQL中不覆盖同名表 。
1. 使用IF NOT EXISTS语句
在创建表的语句前加上“IF NOT EXISTS” , 这样当同名表已经存在时,就不会执行创建表的操作 。例如:
CREATE TABLE IF NOT EXISTS `table_name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
【mysql不覆盖同名表】) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 修改表名后再创建
如果需要创建的表和已有的表同名 , 可以先修改已有表的名称,再创建新表 。例如:
RENAME TABLE `table_name` TO `table_name_old`;
CREATE TABLE `table_name` (
3. 备份表后再创建
如果需要保留已有表的数据,可以先备份表数据 , 再创建新表 。例如:
CREATE TABLE `table_name_new` (
INSERT INTO `table_name_new` SELECT * FROM `table_name`;
总结:以上三种方法都可以在MySQL中不覆盖同名表 。使用IF NOT EXISTS语句可以避免重复创建表,修改表名后再创建和备份表后再创建则可以保留原有数据 。根据需要选择不同的方法即可 。

    推荐阅读