Mysql 在一个查询中使用INSERT、SELECT和UPDATE?

Mysql 在一个查询中使用INSERT、SELECT和UPDATE?,mysql,sql,Mysql,Sql,我试图将数据插入表中,但是我希望选择在生成行时自动递增的ID,然后将其设置到另一个表中的字段中 比如说 插入到playerdata(用户名)值(“%e”) 从playerdata p中选择ID,其中用户名='%e'限制1 更新主数据集插槽=p.ID 我已经试着找到一种方法一个小时了,但仍然没有运气,所以如果有一种方法可以做到这一点,请回复它,或者如果有一种更简单的方法,请解释。非常感谢您的回复。听起来您需要的是插入时的DML触发器 您可以像这样在插入后使用触发器 create trigger u

我试图将数据插入表中,但是我希望选择在生成行时自动递增的ID,然后将其设置到另一个表中的字段中

比如说

  • 插入到playerdata(用户名)值(“%e”)
  • 从playerdata p中选择ID,其中用户名='%e'限制1
  • 更新主数据集插槽=p.ID

  • 我已经试着找到一种方法一个小时了,但仍然没有运气,所以如果有一种方法可以做到这一点,请回复它,或者如果有一种更简单的方法,请解释。非常感谢您的回复。

    听起来您需要的是插入时的DML触发器


    您可以像这样在插入后使用触发器

    create trigger update_masterdata after insert on playerdata
    for each row
    begin
      UPDATE masterdata SET Slot = NEW.id;
    end/
    

    您似乎只插入了1行


    你可以试试函数

    你使用的是编程语言还是sql?我可以用这个-。。不过,我正在使用BlueG的MySQL插件为SA-MP编写代码,它没有包含此功能,但谢谢您的帮助。谢谢,它似乎可以实现这一点,我将查看并尝试一下。但在插入行后,我需要使用SELECT来收集ID,我该如何使用触发器?哦,除了更新主数据之外,你还需要其他的ID。然后我想你必须运行一个查询来搜索该用户名。不,我的意思是-。。我需要将数据插入playerdata,然后我需要使用插入数据时创建的新ID更新主数据,我不是假设“new.ID”上的“new”已经这样做了吗?这是我的错误。NEW.id将是调用insert时插入的自动递增值。在SQLFIDLE上,我将分隔符设置为/。。。您必须指定自己的分隔符或使用适当的分隔符