我试图在mysql中创建一个存储过程,它在每个请求上创建一个新表,从另一个表复制内容并提取所需的数据,最后删除表.存储过程非常大,所以我不能在每次查询后执行EXECUTE,因此我尝试以分号分隔格式一起执行查询.但在最终执行时,我得到错误代码:1064.我尝试的方法是否可行,或者是否有更好的方法.
SET tableName = (SELECT CONCAT("table",(UNIX_TIMESTAMP(NOW()))));
SET @tquery =CONCAT('CREATE TABLE `',tableName,'` (select pt.* from post_table pt join on user u on pt.user_id=u.id where pt.client="client",pt.group="group");');
SET @tquery = CONCAT(@tquery,' SELECT * FROM ',tableName,';');
SET @tquery = CONCAT(@tquery,' DROP TABLE ',tableName,';');
PREPARE stmt FROM @tquery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种直接的方式来运行我的mysql服务器上托管的所有数据库的查询.
我有一堆Magento安装,我想在所有数据库上截断所有Magento日志表:
我觉得在mysql中很容易实现,但我找不到直接的答案/解决方案.
*更新*
根据@Ollie Jones,如果没有商店程序或服务器端语言(PHP或其他),则无法执行此操作
更新1
我选择遵循PHP方法(@samitha)有两个原因: