Ayuda con MySQL (Stored Procedures)

RyukInside

Bovino maduro
#1
Tengo un sitio web donde almaceno un artículo, este artículo debe
ligarse a un autor y a una categoría los cuales están en otras tablas.

Pretendo resolver esto con un procedimiento (Con php sale fácil, pero no es eficiente). Entonces creo este procedimiento:

Código:
DELIMITER $$

CREATE PROCEDURE setArticulo(titulo varchar(200), extracto text, etiquetas varchar(200), autor int(16))
BEGIN
insert into articulo(titulo,extracto,etiquetas) values(titulo,extracto,etiquetas);
set @idNueva = (select idarticulo from articulo where titulo=titulo and extracto=extracto and etiquetas=etiquetas);
insert into usuario_articulo(idusuario,idarticulo) values(autor,@idNueva);
END$$
El problema es que el artículo tiene una ID el cual es un campo AUTOINCREMENT. Después de insertar el artículo ocupo saber su ID con el que MySQL lo guardó y es la parte que no puedo resolver.

Intenté hacer un select y guardar el resultado en la variable @idNueva pero me resulta un error: "Subquery returns more than 1 row".

Una posible solución es recuperar el último ID de artículo subido pero en caso de que se suban 2 al mismo tiempo(cosa poco probable) podría obtener un ID incorrecto lo cual me pondría a un Autor o Categoría incorrectos.

Alguna propuesta? Si no me entendieron pueden pedirme mas detalles xD.

Saludos :)
 
Arriba