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

等价于MySQL中的SQLServer函数SCOPE_IDENTITY()?

荆弘伟
2023-03-14
问题内容

什么是mySQL 中SQLServer函数SCOPE_IDENTITY()的等效项?


问题答案:

这是您要寻找的:

LAST_INSERT_ID()

为了回应OP的评论,我创建了以下基准测试:

CREATE TABLE Foo
(
    FooId INT AUTO_INCREMENT PRIMARY KEY
);

CREATE TABLE Bar
(
    BarId INT AUTO_INCREMENT PRIMARY KEY
);

INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();
INSERT INTO Bar () VALUES ();

CREATE TRIGGER FooTrigger AFTER INSERT ON Foo
    FOR EACH ROW BEGIN
        INSERT INTO Bar () VALUES ();
    END;

INSERT INTO Foo () VALUES (); SELECT LAST_INSERT_ID();

返回

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                1 |
+------------------+

因此,它使用LAST_INSERT_ID()原始表的,而不INSERT使用触发器内部的表。

编辑: 经过所有这些时间,我意识到SELECT LAST_INSERT_ID()答案中显示的结果是错误的,尽管最后的结论是正确的。我已将结果更新为正确的值。



 类似资料:
  • 问题内容: MySQL中的varchar(max)等价于什么? 问题答案: varchar的最大长度取决于MySQL中的最大行大小,即64KB(不包括BLOB): 但是,请注意,如果使用多字节字符集,则限制会更低: 这里有些例子: 最大行大小为65535,但是varchar还包括一个或两个字节来编码给定字符串的长度。因此,即使它是表中的唯一列,您实际上也无法声明最大行大小的varchar。 但是,

  • 问题内容: 在Python中,您可以执行以下操作: 或这个: 在Go中,最简单的选项是: 这不允许您交换格式字符串中参数的顺序,而这需要对I18N进行。Go 确实 具有该软件包,这将需要以下内容: 这似乎是一条很长的路要走的错误消息。有没有更合理的选择,可以让我给出与顺序无关的字符串参数? 问题答案: 用 使用,实现您所需的格式化程序非常容易且紧凑。 输出(在Go Playground上尝试):

  • 问题内容: 在Java中最接近std :: vector的东西是什么?我的意思是,一个可以将T放入其构造函数中,然后将pushBack和popBack()接收到的类,该类存储在连续内存中(而不是链表)。 谢谢 问题答案: ArrayList 一切都内部存储在数组(“连续内存”)中,尽管操作名称略有不同。 有关Java中的列表实现 和泛型的更多信息 编辑 Helper Method 在他的回答中也提

  • 问题内容: 我正在使用Django 1.9,并且正在尝试获取用于从models.py创建数据库表的SQL。 似乎在早期版本的Django中,可以做到: 但这似乎不再是事实了。我得到。文档中似乎没有提供此功能。 如何查看将模型转换为SQL的方式? 问题答案: 据弃用在Django 1.9 : 无需迁移的应用程序的SQL管理命令,sql,sqlall,sqlclear,sqldropindexes和s

  • 我试图在Rust中实现一些类似于类中的C虚拟函数的东西,我会有一个带有数据的基本结构,然后我会保留一些未定义的函数,如以下示例: 我试图用函数指针来实现它,但是没有成功。我可以在A的函数中使用trait,并在另一个类中实现A,但是我会丢失结构的数据。什么最好(最快?)Rust中实现这种东西的方式?

  • 问题内容: 我正在努力寻找一种方法,以根据谓词在流的开头跳过某些元素。 像这样: 那相当于Scala 。 问题答案: 这种操作不是s 的预期用例,因为它并入了元素之间的依赖关系。因此,该解决方案可能看起来不太好,因为您必须为谓词引入一个全状态变量: 请注意,与您的示例相比,该条件必须颠倒。 当然,您可以在方法中隐藏令人讨厌的细节: 一个更复杂,但更清洁,可能更有效的方法是深入研究金属,即界面: 可