mysql - 在多个模式中更改具有相同名称的表

标签 mysql sql database

我在同一个 mysql 服务器的 100 个不同模式中有同名表 (name-xxx)。 我想通过使用单个脚本(无需硬编码)来更改所有名为 xxx 的表 脚本中的模式名称)

最佳答案

你可以尝试这样的事情:

DECLARE @alterQ NVARCHAR(max)
DECLARE @table_name VARCHAR(45)

DECLARE tables_curs CURSOR FOR
  SELECT t.table_name
    FROM INFORMATION_SCHEMA.TABLES t
   WHERE t.table_name = 'xxx'
     AND t.table_catalog = 'db_name'

OPEN tables_curs 
FETCH tables_curs INTO @table_name

WHILE @@Fetch_Status = 0
BEGIN 

  SET @table_name  = N'ALTER TABLE @table_name ...'
  EXEC sp_executesql @alterQ

END

CLOSE tables_curs 
DEALLOCATE tables_curs 

关于mysql - 在多个模式中更改具有相同名称的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931428/

相关文章:

mysql - 是否有可以与 MySQL Community Server 5.5 一起使用的较新版本的 IQ 驱动程序?

mysql - 如何加入3个表,主题,评论和用户

php - mysql不能添加2个外键

python - SQLAlchemy:在连接查询中使用删除/更新

java - 在 hibernate 中加载百万行

Java MySQL使用BasicFileAttributes插入图像文件上次访问时间

mysql - 如何使用 INSERT INTO 语句将简单值插入 BLOB 字段?

mysql - 求和不适用于乘法

mysql - 带空值的 COUNT(),在子查询内

sql - 使用带有多个 where 子句的查询生成器的连接语句