MYSQL的INNODB或BDB类型属于transaction-safe;
(关于transaction-safe table 和 no transaction-safe table的区别,参阅mysql文档)
MYSQL的默认是autocommit;
在mysql命令行执行"SET AUTOCOMMIT=0"将他关掉;
你就可以使用事务了......~~~~~
like this:
<?
..............
mysql_query("BEGIN");
mysql_query($sql);
mysql_query("COMMIT");
..............
?>

解决方案 »

  1.   

    mysql目前还没有对事务处理的支持,不过你可以通过对表加锁的方式有限地进行事务处理。在mysql官方文档里有说明。
      

  2.   

    mysql在4.0版本中的INNODB型表中支持事务。不过4.0还是测试版。过一段时间吧。事务的运用按官方文档说的与别的数据库的事务支持差不多。不过我还没有用过。
      

  3.   

    高版本才支持union,msyql4可以低版本可用临时表代替:
    CREATE TEMPORARY TABLE tmp SELECT *FROM table WHERE 条件1;
    INSERT INTO tmp SELECT * FROM test_table WHERE 条件2;
    SELECT * from tmp;
    DROP TABLE tmp;至于高版本怎样使用,就是一楼兄弟说的方法,跟其他数据库操作一样的。
      

  4.   

    LOCK TABLE.......
    UNLOCK TABLE
      

  5.   

    建表时可以使用innodb,不过它的事务处理给我的感觉怪怪的:(
      

  6.   

    http://www.mysql.com/press/release_2002_11.html很早就出了
      

  7.   

    呵呵,
    等MySQL4.1吧,
    目前的事务处理不太好最好用Lock Table
          UnLock Table
      

  8.   

    http://www.mysql.com/press/release_2002_11.html
      

  9.   

    有支持行级加锁的方法吗?
    现在Lock Tables之后了,另一个进程连select都无法执行.
    我用的是4.0max
      

  10.   

    以前的MySQL版本也是可以支持事务的。但必须安装支持InnoDB类型表的引擎。所以,比较麻烦。在4.x中,已经支持事务了。只要将表的类型设置为InnoDB。在4.x max中,支持BDB。InnoDB和BDB都是事务类型表。