通过命令行在mysql中操作表

时间:2014-10-20 08:21:20

标签: mysql

我需要操作数据库中的表。我在w3schools.com上找到了这个教程,这很好但是它只处理一个表中的数据,但我需要的是操作表而不是数据里面的数据。

这就是我操控表格的意思:

  1. 删除所有以特定前缀

  2. 开头的表格
  3. 将所有以特定前缀开头的表从一个数据库移到另一个数据库

  4. 您可以编辑此列表(以及相应的接受答案中的列表),以便我们可以创建这个良好的学习资源。

  5. 注意:在发布此问题之前,我确实做过研究工作,看到我们缺少这些教程,我决定发布它。

1 个答案:

答案 0 :(得分:1)

我通常使用SQL来编写下一个查询,例如

SELECT 
  CONCAT('DROP ', GROUP_CONCAT(table_name)) 
FROM
  information_schema.tables 
WHERE table_schema = 'database' 
  AND table_name LIKE 'prefix%'

那应该生成一个正确的drop table字符串。

你可以用重命名表做类似的事情。

SELECT 
  CONCAT('RENAME TABLE ', GROUP_CONCAT(CONCAT('database.',table_name, ' TO new.', table_name))) 
FROM
  information_schema.tables 
WHERE table_schema = 'database' 
  AND table_name LIKE 'prefix%' 

较旧版本的MySQL可能需要您先运行

 SET SESSION group_concat_max_len=9999999999;

或其他一些大号