Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum kann ich eine Variable nicht als Tabellenname in einer gespeicherten Prozedur verwenden?

Sie müssen dynamisches SQL verwenden. Ja, äh.

SET @s = CONCAT('UPDATE ', _tablename, ' SET ', _columnname, ' = NULL WHERE LENGTH(TRIM(', _columnname, ')) = 0' );
PREPARE stmt FROM @s;
EXECUTE stmt;