mysql5 不发生异常时功能正常,有异常时,不回滚

来源:互联网 发布:家谱编辑软件 编辑:程序博客网 时间:2024/06/03 20:55
经查
执行完第一个sql后,继续执行第二个sql, 然后不成功,异常,到rollback(); 
这时,conn.commit()还没执行。于是怀疑是 conn.setAutoCommit(false); 没问题。
于是怀疑是 mysql 的问题。经过 N 多努力,查明,本表为myisam,不是innoDB,不支持事务处理 rollback()
在测试环境下,使用 alter table xxxx engine = innoDB ;  将表改为 InnoDB 引擎,结果回滚正常。
证明代码没错,是数据库的问题。



mysql查看表的存储引擎、表结构等相关信息


以下均为查看mytable表的信息

1.查看表的存储引擎、记录数等

mysql> show table status like 'mytable';*************************** 1. row ***************************           Name: mytable  #表名         Engine: InnoDB  #存储引擎伟InnoDB        Version: 10   #mysql版本     Row_format: Compact   #行格式。有Dynamic,fixed,Compact等格式。Dynamic是动态行,表字段里面宝航varchar,BloB等不定长字段。fixed是定长行。Compact是行压缩。           Rows: 0  #表中的行数 Avg_row_length: 0  #平均每行的字节数    Data_length: 16384   #整个表的数据量(字节)Max_data_length: 0  #表最大的容量。0表示无限   Index_length: 0    #索引数据占用磁盘空间的大小      Data_free: 10485760  #表示已分配但还未被使用的空间大小。 Auto_increment: NULL  #下一个AUto_increment的值    Create_time: 2011-08-06 22:39:46  #创建时间    Update_time: NULL  #更新时间     Check_time: NULL  #使用check table等命令时的检查时间      Collation: utf8_general_ci  #默认字符集和字符列排列顺序       Checksum: NULL  #如果启动,则表示整个表的校验和 Create_options: max_rows=4294967295 avg_row_length=32  #表创建时的选项        Comment: 1 row in set (0.00 sec)

2.查看表结构信息

mysql> desc mytable;+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| keyword | varchar(64) | NO   | PRI | NULL    |       || queries | int(10)     | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+
mysql> show create table mytable;       CREATE TABLE `mytable` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` text NOT NULL,`content` text NOT NULL,`ordering` int(11) NOT NULL DEFAULT '0',`position` varchar(50) DEFAULT NULL,`checked_out` int(11) unsigned NOT NULL DEFAULT '0',`checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',`published` tinyint(1) NOT NULL DEFAULT '0',`module` varchar(50) DEFAULT NULL,`numnews` int(11) NOT NULL DEFAULT '0',`access` tinyint(3) unsigned NOT NULL DEFAULT '0',`showtitle` tinyint(3) unsigned NOT NULL DEFAULT '1',`params` text NOT NULL,`iscore` tinyint(4) NOT NULL DEFAULT '0',`client_id` tinyint(4) NOT NULL DEFAULT '0',`control` text NOT NULL,PRIMARY KEY (`id`),KEY `published` (`published`,`access`),KEY `newsfeeds` (`module`,`published`)) ENGINE=MyISAM AUTO_INCREMENT=145 DEFAULT CHARSET=utf8
use information_schema;select * from columns where table_name='mytable';

原创粉丝点击