打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Mysql复合主键中自增长字段 | 将之典藏

Google Analytics的ID一般形如:UA-18xxxxx-1,UA-18xxxxx-4,我们可以将它分成两段来看:字段1:UA-18XXXXX是指帐户的ID;字段2:字段1后附加的1、4,刚分别是指该帐户名下的两个网站。有一段时间很纠结这样的ID怎么去维护,直到最近查阅到Mysql手册才发现,原来Mysql原生就很好的支持了这种含自动增长字段的复合主键,所以字段2是存储引擎自动计算出来的。计算方式:MAX(auto_increment_column) + 1 WHERE prefix=given-prefix [1]

不多说,直接看SQL:

mysql> CREATE TABLE `_test` (    -> `c1` varchar(20) NOT NULL DEFAULT '', -- 主键一:varchar    -> `c2` int(11) NOT NULL AUTO_INCREMENT, -- 主键二:自增序列    -> `c3` varchar(255) ,    -> PRIMARY KEY (`c1`,`c2`) -- 注意这里的先后顺序    -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;Query OK, 0 rows affected (0.04 sec)mysql>mysql> INSERT INTO `_test` (`c1`,`c3`) VALUES ('AAA','Robin Home'),    -> ('AAA','Robin Blog'),    -> ('AAA','Robin Resume'),    -> ('BBB','Lily Home'),    -> ('BBB','Lily Blog');Query OK, 5 rows affected (0.00 sec)Records: 5  Duplicates: 0  Warnings: 0mysql>mysql> SELECT * FROM `_test`;+-----+----+--------------+| c1  | c2 | c3           |+-----+----+--------------+| AAA |  1 | Robin Home   || AAA |  2 | Robin Blog   || AAA |  3 | Robin Resume || BBB |  1 | Lily Home    || BBB |  2 | Lily Blog    |+-----+----+--------------+5 rows in set (0.00 sec)mysql>

值得注意的是,MySQL的这种特性只适用于MyISAM和BDB引擎。


参考资料:

  1. ^ 使用AUTO_INCREMENT ,MySQL手册
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Mysql—数据库管理与表管理
MySQL数据库移植总结
sql server合并字符串
MySQL开发规范
史上最全的大厂Mysql面试题在这里
mysql中key 、primary key 、unique key 与index区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服