標籤:
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引擎。
Mysql複合主鍵中自增長欄位