Mysql使用先前插入的自动增量ID
我有个问题。我正在尝试创建一个将用户添加到表中的过程User,然后使用上一个插入的自动增量 ID 创建一个钱包,将其设置为钱包中的 userId。这是我现在的程序:
BEGIN
START TRANSACTION;
INSERT INTO User (username, email, password, role) VALUES (parUser, parEmail, parPassword, parRole);
INSERT INTO Wallet (userId, market, coin, quantity, avgPrice, startValue) VALUES (???, 'USDT', 'USDT', 2000.0, 1.0, 2000.0)
COMMIT;
END
但是在???我需要放置id刚刚插入的用户的 auto_incremented的地方。我怎样才能做到这一点?
回答
通用方法捕获 id 使用LAST_INSERT_ID(),然后重新使用它:
INSERT INTO User (username, email, password, role)
VALUES (parUser, parEmail, parPassword, parRole);
SET @userId = LAST_INSERT_ID();
INSERT INTO Wallet (userId, market, coin, quantity, avgPrice, startValue)
VALUES (@userId, 'USDT', 'USDT', 2000.0, 1.0, 2000.0);