标签: auto-increment

如何从wordpress数据库中获取最后一个插入的行ID?

我的wordpress插件有一个表,其中包含一个名为ID 的AUTO_INCREMENT主键字段.当一个新行插入表中时,我想获得插入的ID值.

该功能是使用AJAX将数据发布到服务器以插入到数据库中.在AJAX响应中返回新的行ID以更新客户端状态.多个客户端可能同时向服务器发布数据.因此,我必须确保每个AJAX请求获得EXACT新行ID作为响应.

在PHP中,有一个名为mysql_insert_id的方法用于此功能.但是,仅当参数是最后一个操作的link_identifier时,它才对竞争条件有效.我对数据库的操作是在$ wpdb上.如何从$ wpdb中提取link_identifier以确保mysql_insert_id有效?有没有其他方法可以从$ wpdb获取最后插入的行ID?

谢谢.

wordpress auto-increment race-condition

88
推荐指数
2
解决办法
12万
查看次数

mysqldump - 仅在没有自动增量的情况下导出结构

我有一个MySQL数据库,我试图找到一种方法只导出其结构,没有自动增量值.mysqldump --no-data几乎可以完成这项工作,但它保留了auto_increment值.有没有办法不使用PHPMyAdmin(我知道它可以做到)?

mysql export mysqldump auto-increment database-schema

79
推荐指数
2
解决办法
4万
查看次数

休眠自动增量ID

我有一个使用带注释的hibernate的j2ee应用程序.如何在我的pojo类中注释Id字段以将其设置为自动增量或自动生成.并且在添加bean时,我将该字段留在我的bean null中吗?

java hibernate auto-increment

78
推荐指数
5
解决办法
25万
查看次数

如何在Android Gradle中自动增加versionCode

我正在尝试基于Gradle的新Android构建系统,我在想,用它自动增加versionCode的最佳方法是什么.我正在考虑两种选择

  1. 创建versionCode文件,从中读取数字,增加它并将其写回文件
  2. 解析AndroidManifest.xml,从中读取versionCode,增加它并将其写回AndroidManifest.xml

有没有更简单或合适的解决方案?

有没有人使用过mentiod选项之一并可以与我分享?

android build auto-increment gradle android-manifest

78
推荐指数
6
解决办法
4万
查看次数

如何强制MySQL将0作为有效的自动增量值

简而言之,我有一个SQL文件,我想将其作为skel样式文件导入,因此这将以编程方式重复完成.我可以编辑我想要的SQL文件,但我宁愿不要触摸应用程序本身.

此应用程序用于userid = 0表示匿名用户.它还在数据库中有一个相关(空白)条目来表示此"用户".因此,我的行skel.sql看起来像这样:

INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
Run Code Online (Sandbox Code Playgroud)

这个问题是,这uid是一个auto_increment字段,从技术上讲,它0是一个无效的值.或者至少,如果你把它设置为0,你基本上告诉MySQL,"请将下一个id插入到这个字段中."

现在,我想我可以在我的SQL文件中添加INSERT一个UPDATE查询,但有没有办法告诉MySQL一般是的,我实际上想插入0这个字段?

mysql auto-increment

73
推荐指数
4
解决办法
6万
查看次数

如何从SQLite表中检索最后一个自动增量ID?

我有一个表列消息列ID(主键,自动增量)和内容(文本).
我有一个表用户名列有用户名(主键,文本)和哈希.
一个发件人(用户)向许多收件人(用户)发送邮件,收件人(用户)可以收到许多邮件.
我创建了一个包含两列的表Messages_Recipients:MessageID(引用Messages表的ID列和Recipient(引用Users表中的用户名列).此表表示收件人和邮件之间的多对多关系.

所以,我的问题是这个.在将新消息存储在数据库中之后,将创建新消息的ID.但是,我如何保存对刚刚添加的MessageRow的引用以便检索这个新的MessageID?
我总是可以在数据库中搜索最后添加的行,但是这可能会在多线程环境中返回一个不同的行?

编辑:据我所知,SQLite你可以使用SELECT last_insert_rowid().但是如何从ADO.Net中调用此声明?

我的持久性代码(messages和messagesRecipients是DataTables):

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 row = messagesRecipients.NewMessages_RecipientsRow();
        row.Recipient = recipient;
        //row.MessageID= How do I find this??
        messagesRecipients.AddMessages_RecipientsRow(row);
        UpdateMessagesRecipients();//method not shown
    } 

}

private void UpdateMessages()
{
    messagesAdapter.Update(messages);
    messagesAdapter.Fill(messages);
}
Run Code Online (Sandbox Code Playgroud)

database sqlite primary-key auto-increment junction-table

72
推荐指数
5
解决办法
10万
查看次数

如何在选择查询中生成自动增量字段

例如,我有一个包含2列的表,first_namelast_name带有这些值

Ali           Khani
Elizabette    Amini
Britney       Spears
,...
Run Code Online (Sandbox Code Playgroud)

我想编写一个select生成如下表的查询:

1     Ali           Khani
2     Elizabette    Amini
3     Britney       Spears
,...
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

sql-server auto-increment

71
推荐指数
3
解决办法
22万
查看次数

将自动增量ID添加到现有表?

我有一个预先存在的表,包含'fname','lname','email','password'和'ip'.但现在我想要一个自动增量列.但是,当我输入:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?:)

mysql sql definition auto-increment

67
推荐指数
9
解决办法
21万
查看次数

65
推荐指数
4
解决办法
10万
查看次数

MySQL AUTO_INCREMENT没有ROLLBACK

我正在使用MySQL的AUTO_INCREMENT字段和InnoDB来支持事务.我注意到当我回滚事务时,AUTO_INCREMENT字段没有回滚?我发现它是按照这种方式设计的,但有没有解决方法呢?

mysql innodb transactions auto-increment

64
推荐指数
6
解决办法
3万
查看次数