MySQL中可能忽视的几个细节问题

从SQL SERVER转型到MySQL的过程中,我发现对SQL SERVER的DBA来说,使用MySQL时有些容易忽略的问题。先整理了几个:

 

一、用户名是大小写敏感的(我们开启了lower_case_table_names来解决表名和库名大小写的问题,但是貌似没找到参数可以配置用户名的大小写问题),比如说创建的用户名是appuser,用AppUser登录就会失败,这点在我们配置连接串的时候出现过问题,而且一时难以发现。

 

二、关于自增长列:

1、 自增长列可能不是唯一的。MySQL在创建表时,要求auto_crement的字段必须是key,但并不要求是唯一索引,因此如果只将自增长列定义为普通的索引,则可以在里面插入重复的自增ID。

2、当自增长列超过字段类型允许的上限时,获取到的值就是允许的最大值。比如定义为tinyint的自增长,当增长到127时达到上限,继续插入数据,获取到的值仍然是127。这时如果自增长是主键或有唯一约束,则会插入报错;否则,会有重复的127值插入。

 

三、关于存储过程的definer:(如果不指定definer,则存储过程的definer就是创建者)除非在创建存储过程时显式指定SQL SECURITY为INVOKER,否则默认情况下存储过程运行时就是以definer的权限运行。也就是说,当definer有足够权限的时候,任何用户只要有执行存储过程的权限,就可以成功运行存储过程中的任何内容。并且,如果definer的用户在MySQL里不再存在,那么存储过程的运行就会出错。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值