根据日期创建主键

我正在尝试根据创建记录的日期为每个记录创建唯一的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

对于 的 上指定

。在这种情况下,AUTO_INCREMENT列的生成值计算为。当您要将数据放入有序组中时,这很有用。

***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,那么我认为您必须编写自己的触发器来实现此行为。

以上是 根据日期创建主键 的全部内容, 来源链接: utcz.com/qa/410243.html

回到顶部