2012-07-09 72 views
0

MySQL有auto_increment,它允許我們自動創建唯一的主鍵。二進制自動增量列的MySQL替代方案?

但是,這隻適用於整數列。似乎沒有要到auto_incrementbinary列相結合的方式,例如:

mysql > create table Users(Id binary(6) auto_increment, primary key(id)); 

#1063 - Incorrect column specifier for column 'Id' 

我們怎樣才能創造或實現一個自動增量二進制列?

(尋找它保持原子性,並具有相當的性能auto_increment整數列的解決方案。)

+0

可能是插入前觸發器,以事務安全的方式計算新的id值。 – 2012-07-09 19:59:38

回答

0

每個插入操作之前,應該對交易安全將完成你想要的那個叫觸發。

檢出觸發器上的manual page

+0

我相信觸發器在InnoDB表上是完全支持的,是的。 – Lusitanian 2012-07-09 20:03:39

+0

誤會了你。不,我不知道原子性是否有保證,儘管從簡短的谷歌搜索看來,更新之前的觸發器是原子的。話雖如此,如果你要走這條路,你應該在使用前絕對測試一個小數據庫。 – Lusitanian 2012-07-09 20:08:38

+0

嗯,但它似乎沒有酸安全使用觸發器作爲自動增量的替代,從http://dba.stackexchange.com/a/3409/9405和http://stackoverflow.com/questions/16881043 /是數據庫的觸發器安全換交叉表的完整性約束/ 16881199#16881199 – Pacerier 2014-12-07 17:44:46