跳转至

只备份某些表,在数据库内备份

使用 CREATE TABLE ... AS SELECT ... 命令来创建新表的确会造成原始表的索引和某些表属性丢失。这个命令只会复制数据和基本的表结构,不包括索引、外键、触发器、默认值设定或存储过程等。

如果你需要备份一个表并保留其完整结构(包括索引),你需要:

  1. 首先使用 SHOW CREATE TABLE example; 命令来获取创建原始表的完整 SQL 语句。
  2. 修改这个完整 SQL 语句来创建新的备份表,比如将表名改为 example_20231118
  3. 执行修改后的创建表 SQL 语句来创建新的备份表,这样就包含了索引和所有原始表的属性。
  4. 然后使用 INSERT INTO example_20231118 SELECT * FROM example; 来复制数据。

这种方法可以确保你的备份表保留了完整的结构和索引。