当前位置: 首页 > 面试题库 >

根据日期创建主键

容飞掣
2023-03-14
问题内容

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

因此,在表上创建两列,一个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,那么我认为您必须编写自己的触发器来实现此行为。



 类似资料:
  • 问题内容: Oracle是否具有内置功能来根据其各个组成部分(年,月和日)创建仅对缺失数据返回null的日期? 我知道,但是我需要首先编写一个字符串,并且运算符和函数都无法轻松处理丢失的数据: 只要是我们最终和: 问题答案: 例如,您可以使用: 不幸的是,Oracle没有一种方法(如果可能)进行转换,否则将返回NULL。SQL Server最近为此目的而引入。 一种选择是为失败的转换编写带有异常处

  • 问题内容: 我正在尝试根据创建日期读取最新的10个文件。 我尝试了此代码,但是它不能用,我的意思是,每当我添加新文件时,它都不会在输出中显示新文件名。 我什至尝试了apache commons io,但这也不起作用(这意味着在该目录中创建新文件时,不显示新文件) 这是我的Apache Commons io版本 问题答案: 尝试翻转比较顺序: 这对我来说仅适用于本地测试。

  • 我有一个java代码,它将一个对象插入到Mongo DB的一个集合中。当我插入这个新对象时(下面给出了该对象的详细信息),我还需要插入一个创建日期。处理这件事的最好方法是什么?由于我们有不同的时区,我想确保我遵循了正确的方法来保存和读取日期字段。 文档结构:我需要让我的java代码创建一个系统日期,以正确的格式将创建日期插入Mongo DB。 {“_id”:对象id(“568ac782e4b0fb

  • 我想问的是,是否有一种首选的方法来根据显示格式比较两个日期对象?我可以实现这个逻辑,我只是好奇是否已经存在一些实现。 更新 我有两个日期对象: null

  • 本文向大家介绍Python根据当前日期取去年同星期日期,包括了Python根据当前日期取去年同星期日期的使用技巧和注意事项,需要的朋友参考一下 业务的开发时候有一个需求,需要对比当前时间段和去年同星期的时间段的数据,例如当前时间是2019-04-11,是今年的第十五周的周四,如何去取去年的第十五周的周四呢? 查了好多资料没有对应的处理方法,于是自己写了这个方法,如果您有更好的方法,可以留言。 py

  • 问题内容: 我有一个存储html文件的缓存文件夹。它们在需要时会被覆盖,但是很多时候,很少使用的页面也会被缓存在那里,最终只会占用空间(5周后,驱动器已满了270万个缓存文件)。 循环访问包含数十万个文件的目录并删除早于1天的文件的最佳方法是什么? 问题答案: 我认为您可以通过使用readdir遍历目录并根据时间戳删除来解决此问题: 在将选择的文件超过24小时(24周小时时间每小时3600秒)以上