2012-07-09 57 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