我正在尝试返回此语句的行值:
INSERT INTO SystemName (SystemName)
SELECT * FROM (SELECT v_SystemName) AS tmp
WHERE NOT EXISTS (
SELECT * FROM SystemName WHERE SystemName = v_SystemName
) LIMIT 1;
SET id = LAST_INSERT_ID();
如果它确实进行了插入,我需要它返回该行 ID,否则它需要返回新的行 ID。我尝试使用 LAST_INSERT_ID() 但它没有返回我需要的东西,因为如果它不执行插入,它会给出错误的结果。有没有人有可以使这项工作可行的想法?
最佳答案
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
假设您的过程只需要返回行 ID 并且不会进行进一步处理,您可以尝试:SELECT LAST_INSERT_ID();
关于mysql - 从存储过程 MySQL 返回行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107595/