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: 0 mysql> 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引擎。
时间: 2024-10-12 20:45:12