When creating MySQL sql scripts, is it necessary to use quote column name in ` `?

The short answer, is yes, it’s good practice to escape your column and table names with backticks in MySQL. This allows you to use spaces (but you shouldn’t use spaces) and words that would otherwise be reserved (either existing reserved words, or new reserved words that appear in later or future versions of the database engine–but you should try to avoid doing this).

However, as you’ve discovered, not all database engines use the same method of escaping table and column names–only MySQL (as far as I’m aware) uses backticks.

However, using double-quotes to escape table and column names are generally cross-compatible. Oracle, PostgreSQL, MySQL, MSSQL, and SQLite all support the use of double-quotes to escape table and column names. There are a couple caveats to this, though.

In MSSQL, the default method for escaping table and column names is to use square brackets. MSSQL requires QUOTED_IDENTIFIER to be set to ON in order to be able to use double-quotes.

MySQL requires ANSI mode to be turned on in order to be able to use double-quotes.

If you find yourself needing to port queries from one engine to another, you will likely need to perform a find and replace search for the escape symbols. However, if you are going between MySQL and MSSQL, there are quite a few differences beyond just the usage of the escape symbols.