我正在尝试根据创建记录的日期为每个记录创建唯一的ID。例如,如果今天创建记录,我希望键为20101130XX,其中XX是数字的顺序列表,例如01、02、03等…以防今天有多个人创建记录。
如果昨天有3个人创建了记录,则其唯一ID为
2011032700 2011032701 2011032702
然后午夜到了,有人创建了一个新记录
2011032800
这样做的目的是给每个记录一个唯一的ID,该ID将用于引用票证。
我们已经在使用日期格式,但是当前用户必须手动输入ID,否则当创建2011032700时可能会产生诸如2012032700之类的错误,因此他们将2012放在了2011年
我只是不确定如何创建触发器来生成这种类型的唯一ID,将不胜感激
从dev.mysql.com:例如,自动increment.html
对于 MyISAM和BDB表* ,可以在 多列索引 的 第二列 上指定 AUTO_INCREMENT 。在这种情况下,AUTO_INCREMENT列的生成值计算为。当您要将数据放入有序组中时,这很有用。 ***MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
因此,在表上创建两列,一个dateEntered和一个(auto_incremented)id,如下所示:
CREATE TABLE yourTable ( dateEntered DATE NOT NULL, id INT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (dateEntered, id) ) ENGINE=MyISAM;
如果您不使用ISAM而是使用InnoDB,那么我认为您必须编写自己的触发器来实现此行为。