Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有没有一种简单的方法来重命名过程中的表?_Mysql_Stored Procedures_Mariadb - Fatal编程技术网

Mysql 有没有一种简单的方法来重命名过程中的表?

Mysql 有没有一种简单的方法来重命名过程中的表?,mysql,stored-procedures,mariadb,Mysql,Stored Procedures,Mariadb,我使用的是MariaDB 10.1 SQLyog 11.5 我已经使用下面的查询重命名了表 ALTER TABLE old_name RENAME new_name 但是有许多存储过程引用“old_name”。我已打开所有SP创建查询并进行了更改。因为我不知道哪个SP有一个引用旧\u name表的查询 有没有办法知道哪个SP有引用旧\u name表的查询?通过这种方式,您可以获取存储过程中可用的文本 请尝试此查询:(未验证) 参考此您可以这样做: 创建重命名查询 SELECT CONCAT

我使用的是MariaDB 10.1 SQLyog 11.5

我已经使用下面的查询重命名了表

ALTER TABLE old_name RENAME new_name
但是有许多存储过程引用“old_name”。我已打开所有SP创建查询并进行了更改。因为我不知道哪个SP有一个引用旧\u name表的查询

有没有办法知道哪个SP有引用旧\u name表的查询?

通过这种方式,您可以获取存储过程中可用的文本

请尝试此查询:(未验证)


参考此

您可以这样做:

创建重命名查询

SELECT  CONCAT ('RENAME TABLE ',
  GROUP_CONCAT(t.TABLE_SCHEMA,'.',t.TABLE_NAME,' TO ', t.TABLE_SCHEMA,'.',REPLACE(t.TABLE_NAME,'old','NEW') SEPARATOR ' , ') 
) INTO @sql
FROM information_schema.TABLES t
WHERE t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_SCHEMA IN ('SCHEMA1','SCHEMA2')
AND t.TABLE_NAME LIKE 'old_table%';
SELECT @sql;
仅用于验证

SELECT  CONCAT ('RENAME TABLE ',
  GROUP_CONCAT(t.TABLE_SCHEMA,'.',t.TABLE_NAME,' TO ', t.TABLE_SCHEMA,'.',REPLACE(t.TABLE_NAME,'old','NEW') SEPARATOR ' , ') 
) INTO @sql
FROM information_schema.TABLES t
WHERE t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_SCHEMA IN ('SCHEMA1','SCHEMA2')
AND t.TABLE_NAME LIKE 'old_table%';
SELECT @sql;
准备并执行它

PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

从SysObjects中选择不同的O.[name],在C.Id=O.Id上加入SysComments C,其中C.[text]类似于“%old_name%”
这在MSSQL中起作用。对于MySQL,您可以使用
信息\u模式。
相关表,这不是解决方案,但可能会让您有所了解您的答案正是我想要的!“您可以获取存储过程中可用的文本”也是一个很好的提示。谢谢你,阿鲁玛!!我想要的是一个SP列表,其中包含引用“old_name”表的查询。但是你给了我一个新的方法来重新命名表格。非常感谢。