相关疑难解决方法(0)

使用mysql Prepared Statement执行多个分号分隔查询

我试图在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 sql execute

11
推荐指数
1
解决办法
1万
查看次数

运行查询foreach数据库(mysql)

我正在寻找一种直接的方式来运行我的mysql服务器上托管的所有数据库的查询.

我有一堆Magento安装,我想在所有数据库上截断所有Magento日志表:

  • log_customer
  • log_visitor
  • log_visitor_info
  • log_url
  • log_url_info
  • log_quote
  • report_viewed_product_index
  • report_compared_product_index
  • report_event
  • catalog_compare_item

我觉得在mysql中很容易实现,但我找不到直接的答案/解决方案.

*更新*
根据@Ollie Jones,如果没有商店程序或服务器端语言(PHP或其他),则无法执行此操作

更新1
我选择遵循PHP方法(@samitha)有两个原因:

  1. 商店程序看起来更复杂
  2. 对'information_schema'表的查询非常慢(至少如果你有很多DB/TABLES)

mysql

7
推荐指数
3
解决办法
1万
查看次数

标签 统计

mysql ×2

execute ×1

sql ×1