我有一张表格user
。它有列 id
和 email
。
使用表
id | email
1 | [email protected]
2 | [email protected]
The id
is a PRIMARY KEY AUTO_INCREMENT
and the email
is an UNIQUE KEY
.
When I insert a new row in the table and there is a DUPLICATE KEY
exception thrown. I want to fetch the id
on which the DUPLICATE KEY
exception was thrown.
现在,我正在做这个...
BEGIN
DECLARE EXIT HANDLER FOR 1062
BEGIN
SELECT id
INTO id
FROM user
WHERE email = [email protected] ;
END;
INSERT INTO user
(email)
VALUES
( [email protected] );
SELECT LAST_INSERT_ID() INTO id;
END;
我想知道是否有更好的办法做到这一点。这就是为了避免再次扫描表格,获取它已经扫描过的身份,以检查电子邮件的独特性。