dom sheratte
dom sheratte

Reputation: 5

SQL Stored Procedure Deleting all rows in table

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

Answers (2)

pravin aenam
pravin aenam

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

juergen d
juergen d

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

Related Questions