代码之家  ›  专栏  ›  技术社区  ›  MattBelanger

MySQL-视图替代方案

  •  2
  • MattBelanger  · 技术社区  · 16 年前

    有没有人有一个快速而肮脏的方法来处理这个问题,而不需要重写我所有的代码?

    4 回复  |  直到 16 年前
        1
  •  3
  •   Bill Karwin    16 年前

    这无疑指出了在开发和生产环境中使用相同技术的重要性!

    涉及触发器或存储过程的变通方法不起作用,因为MySQL 4.x也不支持这些方法。

    • 重写应用程序代码以复制非规范化表中的数据,这些表是为匹配视图而设计的。

    请注意,MySQL 4.1是四年前作为生产软件发布的。对该版本的积极支持在2006年结束。MySQL 4.1的扩展支持将于2009年12月31日结束。看见 http://www.mysql.com/about/legal/lifecycle/

        2
  •  2
  •   derobert    16 年前

    想到的一种快速而肮脏的方法是将DBI子类化,然后在那里重新编写SQL。当然,这取决于您使用视图的目的,如果您指的是MySQL 4.0(没有子查询)或MySQL 4.1(有子查询)。

    CREATE VIEW foo AS
      SELECT a, b, c FROM real_table WHERE fooable = 1;
    
    SELECT * FROM foo;
    

    进入

    SELECT v1.* FROM (
      SELECT a, b, c FROM real_table WHERE fooable = 1
    ) v1;
    

    至少,后一种语法可以在5.0.x中使用,我认为它也应该在4.1.x中使用。

    如果你在4.0上。。。那就不那么容易了。

        3
  •  1
  •   Chris Kloberdanz    16 年前

    哎哟除了DeLorean和flux电容器或升级服务器之外,我不知道有什么简单的方法可以解决这个问题。许多变化似乎是必要的。

        4
  •  0
  •   Anne Porosoff    16 年前