经常遇到这样的情景,向一个表里插入一条数据,如果已经存在就更新一下,用程序实现麻烦而且在并发的时候可能会有问题,这时用mysql的DUPLICATE KEY 很方便
用法如下:
- INSERT INTO `user_count`(`id`,`count`, `addtime`)values (#id#,#count#,#addtime#)ON DUPLICATE KEY UPDATE `count`=`count`+if(addtime<'2011-11-09 00:00:00',1,0),addtime=if(addtime<'2011-11-09 00:00:00',now(),addtime);
改变主键的方法
- Alter table t1 drop primary key;
- Alter table t1 add primary key(id,roleid);