title: MySQL : When stored procedure parameter name is the same as table column name
body: <p>Let's say a have a stored procedure SetCustomerName which has an input parameter Name, and I have a table customers with column Name.
  So inside my stored procedure I want to set customer's name. If I write</p>
  
  <pre><code>UPDATE customers SET Name = Name;</code></pre>
  
  <p>this is incorrect and I see 2 other ways:</p>
  
  <pre><code>UPDATE customers SET Name = `Name`;
  UPDATE customers SET customers.Name = Name;</code></pre>
  
  <p>First one works, but I didn't find in documentation that I can wrap parameters inside ` characters. Or did I miss it in the documentation (link is appreciated in this case).</p>
  
  <p>What other ways are there and what is the standard way for such a case? Renaming input parameter is not good for me (because I have automatic object-relational mapping if you know what I mean).</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>So, there is a link about backticks (<a href="http://dev.mysql.com/doc/refman/5.0/en/identifiers.html" rel="noreferrer">http://dev.mysql.com/doc/refman/5.0/en/identifiers.html</a>) but it's not explained deep enough how to use them (how to use them with parameters and column names).</p>
  
  <p>And there is a very strange thing (at least for me): You can use backticks either way:</p>
  
  <pre><code>UPDATE customers SET Name = `Name`;
  //or
  UPDATE customers SET `Name` = Name;
  //or even
  UPDATE customers SET `Name` = `Name`;</code></pre>
  
  <p>and they all work absolutely the same way.</p>
  
  <p>Don't you think this is strange? Is this strange behavior explained somewhere?</p>