Reputation: 5
I am trying to delete a single row using a stored procedure in MySQL, however the stored procedure is deleting all rows. The stored procedure is:
CREATE DEFINER=`sherattd`@`%` PROCEDURE `deleteFilm`(in ID int)
BEGIN
delete from films where id=ID;
END
The table I am trying to delete from has headings:
create table films (
id int(8),
title varchar(100),
year int(8),
director varchar(100),
stars varchar(100),
review text);
Thanks
Upvotes: 0
Views: 1937
Reputation: 1
Parameter name needs to be different as per answer by @juergen d
e.g.
CREATE DEFINER=`sherattd`@`%` PROCEDURE `deleteFilm`(in FID int)
BEGIN
delete from films where id=FID;
END
Upvotes: 0
Reputation: 204766
Because you use as parameter the same name as the column name. It is case insensitive.
where id=id
is always true. Choose another parameter name!
Upvotes: 7