mysql方面的
第一题:一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15
第二题:还是MYSQL的,一张表有还是有ID自增主键,用JDBC insert一条语句之内,怎么在JAVA程序里面获得这条记录的ID.
[b]问题补充:[/b]
18,因为你没有把mysql归0
但是那个面试我的人告诉我是15啊。。
还有MYSQL怎么归0啊
[b]问题补充:[/b]
第一题,面试的人告诉我的说是15,还是这个是MYSQL的XX机制,还说MYSQL可能会才产XX数据的原因所在
[b]问题补充:[/b]
面试的人不一定技术都是很厉害的,我最烦的是那些SB从网络抄一题,自己都没有验证过,来考应聘人员。。。我是这么认为,这么多年来,经历那么多面试,真正懂技术没有几个,真正能够和他谈技术的,我的印象中仅一人。
哇,我去验证下嘛,是不是MYSQL版本的问题呢?有的版本就是15有的版本就是18呢。。。还有MYSQL是要重启的,重启了之后再INSERT
[b]问题补充:[/b]
人家是是把MYSQL重启啊,不是把表truncate t_test;
[b]问题补充:[/b]
谢谢大家。。。。
[b]问题补充:[/b]
wcily123大哥,我说了,删了数据之后,[color=red]MYSQL要重启啊。。。[/color]
[b]问题补充:[/b]
如果表的类型是MyISAM,那么是18。
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
如果表的类型是InnoDB,那么是15。
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。
(防止因OPTIMIZE操作丢失最大ID的方法,我写了一篇博客,请参看http://ilgnep.iteye.com/blog/317343)
个人感觉,使用的InnoDB的多一些。
MyISAM表和InnoDB表怎么创建,怎么看表是InnoDB还是MyISAM
[b]问题补充:[/b]
[color=red]MyISAM表和InnoDB表怎么创建,怎么看表是InnoDB还是MyISAM [/color]
[b]问题补充:[/b]
晕了,去MYSQL官方看了一下,就一个表,就有这么多的类型啊。。。
[img]/upload/attachment/97387/25c4663f-77d0-3513-903c-3246d4cda874.jpg[/img]
。。。。。。
[b]问题补充:[/b]
http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html
[b]问题补充:[/b]
第一题:这个要看Mysql表的类型
我现在知道的有两种,一种是MyISAM,另一种是InnoDB
MYSQL默认的就是InnoDB
InnoDB是把表的主键最大值放到内存里面,所以MYSQL重启之后就会丢失(在WINDOW下,这是MYSQL默认的)
MyISAM是把表的主键最大值放到文件里面,所以MYSQL重启之后不会丢失
可以在创建表的时候显示指定
[code="sql"]create table t_test(id int not null auto_increment primary key,name varchar(255)) ENGINE=InnoDB;
或
create table t_test(id int not null auto_increment primary key,name varchar(255)) ENGINE=MyISAM;[/code]
还可以通过
[code="sql"]SHOW TABLE STATUS;[/code]命令可以看到表的类型
使用ALTER命令可以对单个表的类型进行修改
[code="sql"]ALTER TABLE talbe_name ENGINE=InnoDB; [/code]
用
[code="sql"]SHOW GLOBAL VARIABLES LIKE '%engine%';[/code]
可以看到MySQL当前默认的新生成表的类型。
第二题:
有两种方法,
1.JDBC有这个API,Statement.getGeneratedKeys();
2.可以利用MySQL语句获得,但这个就不是通用语句了:SELECT LAST_INSERT_ID();
以上是总结,大家看一看有什么问题没有,谢谢大家了,那个MySQL-Front 就算了嘛,我要的话我去网上搜一下就应该下载的到啥。。
感谢所有网友
在这里还要特别感谢:
huangnetian,hantsy,lovewhzlq,LucasLee,wcily123,秦朝古月等等
[b]问题补充:[/b]
http://langhua9527.iteye.com/blog/374113