mysql - 黑洞引擎的创意用途

标签 mysql

根据文档:
http://dev.mysql.com/doc/refman/5.0/en/blackhole-storage-engine.html

黑洞存储引擎可用于诊断和将二进制日志卸载到另一台机器,而无需将数据库存储在该机器上。

您还能想出该引擎的其他创意用途吗?

最佳答案

使用触发器找到了一个:

如果您有一系列复杂的插入或更新需要在事务中发生,您可以在应用程序代码中执行这些操作,或者

您可以创建一个“大”blackhole 表,其中包含足够多的行来容纳所有值。

然后创建一个触发器,例如:

DELIMITER $$

CREATE TRIGGER ai_bh_table_each AFTER INSERT ON bh_table FOR EACH ROW
BEGIN
  DECLARE lastid1 integer;

  INSERT INTO table1 VALUES (null, new.field1, new.field2);
  SELECT LAST_INSERT_ID() INTO lastid1;
  INSERT INTO table2 VALUES (null, new.field3, lastid1);
  ....  
END$$

DELIMITER ;

如果您包含错误检查代码,您甚至可以在不支持它的引擎(如 MyISAM)上模拟事务。

关于mysql - 黑洞引擎的创意用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851387/

相关文章:

mysql - Jruby Activerecord 给了我过时的连接

MySQL:如果行相等则求和

mysql - 用一个 SELECT 语句替换多个 CREATE VIEW - MySQL

mysql - 带 ROUND 和除法的 sql 查询

mysql - 优化查询

PHP Mysql PDO : General error: 2006 MySQL server has gone away

mysql - 如何从 programData 文件恢复 mysql innoDb 数据库

MySQL 对多个同时发生的条件进行过滤

php - MySQL bool 全文搜索

mysql - #错误: Cant connect to MySQl server on '192.168.0.114' ((10060) MySQL error code 2003