MySQL SELECT LAST_INSERT_ID()作为复合键.是否有可能? [英] MySQL SELECT LAST_INSERT_ID() for compound key. Is it possible?

查看:99
本文介绍了MySQL SELECT LAST_INSERT_ID()作为复合键.是否有可能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以在MySQL中获得复合键的LAST INSERT ID()吗?

Can I get the LAST INSERT ID() for a compound key in MySQL?

推荐答案

是.单个表中不能有多个自动递增字段.

Yes. You can't have multiple auto-increment fields in a single table.

CREATE TABLE foo (
  id1 int(11) NOT NULL auto_increment,
  id2 int(11) NOT NULL default '0',
  PRIMARY KEY  (id1, id2)
);

INSERT INTO foo VALUES (DEFAULT, 2);

SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1

LAST_INSERT_ID()仅返回声明为AUTO_INCREMENT的列的值.没有函数会返回系统未生成的复合主键中的值.您应该已经知道该值,因为您只是在INSERT语句中给出了它.棘手的情况是触发器或某些东西覆盖了该值.

LAST_INSERT_ID() returns the value only for a column declared AUTO_INCREMENT. There's no function to return the value in a compound primary key that wasn't generated by the system. You ought to know that value already, since you just gave it in an INSERT statement. The tricky case would be when a trigger or something overrides the value.

这篇关于MySQL SELECT LAST_INSERT_ID()作为复合键.是否有可能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆