如何获取最后一条记录/最大值
Posted
技术标签:
【中文标题】如何获取最后一条记录/最大值【英文标题】:How to get last record / max value 【发布时间】:2015-04-17 18:09:01 【问题描述】:我有 PWD,应该是 0001、0002、0003、0004
所以当我想在数据库中添加新记录时,我会得到这样的最大值
sql.Query(" SELECT pwrd FROM users WHERE pwrd = (SELECT max(pwrd ) FROM users)")
Dim highest As Integer = (sql.SQLDataset.Tables(0).Rows(0).Item(0))
通过这种方式,我从表示例“0004”中获得最高行 现在,当添加新查询时,我需要将该值增加 1 为“0005”
如果我去TextBox1.Text = Highest + 1
我只会得到 5 没有“000”
【问题讨论】:
我要么使用自动增量列类型,要么在插入触发器期间设置此值。尝试在这样的代码中执行此操作会导致竞争条件。 在插入触发器下进行自动增量是什么意思。该查询将如何进行 【参考方案1】:您可能希望将 ZEROFILL 属性添加到该字段。
你可以像这样创建你的表:
ALTER TABLE users MODIFY pwd INT(3) zerofill AUTO_INCREMENT not null;
编辑:
您可以尝试删除表并像这样创建:
CREATE TABLE users
(
ID INT IDENTITY(1, 1)
, pwd AS RIGHT('000' + CAST(Id AS VARCHAR(4)), 4)
)
【讨论】:
刚刚google了一下,大概是这样,但是怎么做 @AnelHodzic:- 我建议改变你的表,然后简单地插入密码。要更改表,您可以使用此 sql:ALTER TABLE tbl MODIFY pwd INT(3) zerofill AUTO_INCREMENT not null;
问题是这是学校作业,我有主键自动增量,即 ID,它看起来像这样。 “pokit.org/get/img/a63e74fe27d4720d2afcf9d41e74a320.jpg”也可以设置这个自动增量吗?
@AnelHodzic:- 您提供的链接已损坏。无论如何,我已经添加了 alter table 脚本。您只需要运行该脚本即可完成所有工作。
非常感谢你帮助我,但我把它弄错了 MS SQL,这就是我得到的pokit.org/get/?120a1aef7e07c64b1e649b62e9ff1a35.jpg'MODIFY'附近的语法错误。【参考方案2】:
TextBox1.Text = (Highest + 1).ToString.PadLeft("0",4)
未测试,因此语法可能有点偏差。
【讨论】:
以上是关于如何获取最后一条记录/最大值的主要内容,如果未能解决你的问题,请参考以下文章
Javascript - 如何从数组列表中获取最后一条记录? [复制]
如何使用聚合函数在 MySQL 查询中获取分组记录的第一条和最后一条记录?
如何使用聚合函数在 MySQL 查询中获取分组记录的第一条和最后一条记录?