Questions tagged «auto-increment»

数据库约束,在执行INSERT时会自动从最后一条记录开始增加

5
如何从SQLite表中检索最后一个自动递增的ID?
我有一个表Messages,其列ID(主键,自动递增)和Content(文本)。 我有一个表Users,具有用户名列(主键,文本)和哈希。 一个发件人(用户)将一条消息发送给许多收件人(用户),并且一个收件人(用户)可以有很多消息。 我创建了一个具有两列的表Messages_Recipients:MessageID(指的是Messages表的ID列和Recipient(指的是Users表中的username列)。该表代表了收件人和消息之间的多对多关系。 所以,我的问题是这个。将新消息的ID存储在数据库中后,将创建该ID。但是,如何保留对我刚刚添加的MessageRow的引用,以检索此新的MessageID?我总是可以在数据库中搜索添加的最后一行,但是在多线程环境中可能返回其他行吗? 编辑:据我了解,对于SQLite,您可以使用SELECT last_insert_rowid()。但是,如何从ADO.Net调用此语句? 我的持久性代码(消息和消息收件人是数据表): public void Persist(Message message) { pm_databaseDataSet.MessagesRow messagerow; messagerow=messages.AddMessagesRow(message.Sender, message.TimeSent.ToFileTime(), message.Content, message.TimeCreated.ToFileTime()); UpdateMessages(); var x = messagerow;//I hoped the messagerow would hold a //reference to the new row in the Messages table, but it does not. foreach (var recipient in message.Recipients) { var …


13
如何在Android Gradle中自动增加versionCode
我正在尝试基于Gradle的新的Android构建系统,并且在考虑,用它自动增加versionCode的最佳方法是什么。我在考虑两种选择 创建versionCode文件,从中读取编号,增加编号并将其写回到文件中 解析AndroidManifest.xml,从中读取versionCode,增加它并将其写回到AndroidManifest.xml 还有其他更简单或更合适的解决方案吗? 有没有人使用过其中一种方案,可以与我分享?

4
如何强制MySQL将0作为有效的自动增量值
长话短说,我有一个要导入为skel样式文件的SQL文件,因此将以编程方式重复进行此操作。我可以根据需要编辑SQL文件,但我不想触摸应用程序本身。 此应用程序userid = 0用来代表匿名用户。它在数据库中还具有一个相关的(空白)条目来表示此“用户”。因此,我这行skel.sql看起来像这样: INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL); 问题在于这uid是一个auto_increment字段,从技术上讲,该字段0是无效值。或者至少,如果将其设置为0,则基本上是在告诉MySQL,“请在该字段中插入下一个ID”。 现在,我想我可以在SQL文件中添加INSERT一个UPDATE查询,但是有没有一种方法可以告诉MySQL,是的,我实际上是想插入0该字段吗?


17
在MySQL中删除后自动递增
我有一个带有主键字段且具有AUTO_INCREMENT的MySQL表。在阅读了这里的其他文章后,我发现人们遇到同样的问题,答案也各不相同。有些人建议不要使用此功能,其他人则说它不能被“修复”。 我有: table: course fields: courseID, courseName 示例:表中的记录数:18.如果删除记录16、17和18-我希望输入的下一条记录的courseID为16,但是由于最后输入的courseID为18,所以它将为19。 我的SQL知识并不奇怪,但是无论如何,是否可以通过查询(或phpMyAdmin界面中的设置)刷新或更新此计数? 该表将与数据库中的其他表相关。 有了所有建议,我决定忽略这个“问题”。我将简单地删除和添加记录,同时让自动增量完成它的工作。我猜数字到底有多大无关紧要,因为它仅用作唯一标识符,并且没有(如上所述)业务含义。 对于那些可能对我的原始帖子感到困惑的人:我不想使用此字段来知道我有多少条记录。我只是希望数据库看起来整洁,并具有更多的一致性。

6
当整数列上的auto_increment达到数据库中的max_value时会发生什么?
我正在实现一个数据库应用程序,我将同时使用JavaDB和MySQL作为数据库。我的表中有一个ID列,其类型为整数,并且使用数据库auto_increment-function作为值。 但是,当我获得超过2(或4)十亿个帖子并且整数不够时,会发生什么?整数溢出并继续还是抛出了我可以处理的异常? 是的,我可以更改为数据类型,但是如何检查何时需要?而且我认为,如果我将long用作ID列的数据类型,则获取last_inserted_id()函数会出现问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.