在Mysql中,我使用Insert命令在mysql的表中插入一行,现在我想要插入最后一行的Id,我正在使用
SELECT LAST_INSERT_ID() ;但是它每次都给我0作为输出。在这方面请帮帮我。
发布于 2012-10-12 20:11:40
LAST_INSERT_ID()仅返回由MySQL服务器为AUTO_INCREMENT列自动生成的值;当您插入特定值时,不会自动生成,LAST_INSERT_ID()也不会返回值。
你可以自己给LAST_INSERT_ID赋值:
INSERT INTO table (uuid) VALUES (LAST_INSERT_ID(12345));LAST_INSERT_ID(value)将value分配给后续对LAST_INSERT_ID()的调用返回,并返回相同的值。不幸的是,这只适用于整数值,对UUID没有用处。
发布于 2012-10-12 20:11:51
为什么要选择不是由insert自动生成的东西,而是传递给它的东西?原因是您在insert语句中使用了UUID()。我建议您首先选择UUID,然后将其传递给插入
SELECT @id := UUID();
INSERT INTO tablename(id, value) VALUES(@id, somevalue)发布于 2012-10-12 20:09:58
您正在分配一个自动递增uuid,这就是您所做的错误
自动增量字段将自动插入
除此之外,您将在LAST_INSERT_ID()中得到0结果。
https://stackoverflow.com/questions/12858588
复制相似问题