Create table via stored procedure and passed table name

hi there, I am trying to create a stored procedure that i can pass the table name to and it will create a table with that name. but for some reason it creates with what i have defined as the variable name . In the case of the example below it creates a table called ‘tname’

for example

CREATE PROCEDURE createtable(tname varchar(20))
BEGIN
DROP TABLE IF EXISTS tname;
CREATE TABLE tname SELECT * FROM anothertable WHERE value = 'something';
END //

now i call it passing my desired table name

mysql> call createtable(accounts);

It works fine apart from the fact it ignores my desired table name of ‘accounts’ and instead creates a table called ‘tname’

Is there something basic i’m doing wrong here?

any help would be greatly appreciated
Cheers

July, OUCH. I was trying to do something similar.
I wonder why there is no advice for mysql variables…?