【问题标题】:MySQL alternatives to binary auto-increment column?MySQL 替代二进制自动增量列?
【发布时间】:2012-07-09 19:57:37
【问题描述】:

MySQL 有auto_increment,它允许我们自动创建唯一的主键。

但是,这仅适用于整数列。似乎没有办法将auto_incrementbinary 列结合起来,例如:

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

#1063 - Incorrect column specifier for column 'Id'

我们如何创建或实现一个自增二进制列?

(找到一种保持原子性并具有与auto_increment 整数列相当的性能的解决方案。)

【问题讨论】:

  • 可能是插入前触发器,以事务安全的方式计算新的 id 值。

标签: php mysql web binary auto-increment


【解决方案1】:

在每次插入操作之前调用的触发器对事务应该是安全的,并且会完成您想要的。

在触发器上查看manual page

【讨论】:

  • 我相信 InnoDB 表完全支持触发器,是的。
  • 误会你了。不,我不知道是否保证了原子性,尽管从简短的谷歌搜索来看,更新前的触发器似乎是原子的。话虽如此,如果您要走这条路,您绝对应该在使用前在小型数据库上进行测试。
  • 嗯,但是从dba.stackexchange.com/a/3409/9405stackoverflow.com/questions/16881043/… 开始,使用触发器代替自动增量似乎并不安全
猜你喜欢
  • 2011-03-21
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多