•Loadable functions and stored functions 

Loadable functions and stored functions share the same namespace, so you cannot create a loadable function and a stored function with the same name. 

The preceding function name resolution rules have implications for upgrading to versions of MySQL that implement new built-in functions: 

•If you have already created a loadable function with a given name and upgrade MySQL to a version that implements a new built-in function with the same name, the loadable function becomes inaccessible. To correct this, use DROP FUNCTION  to drop the loadable function and CREATE FUNCTION  to re-create the loadable function with a different nonconflicting name. Then modify any affected code to use the new name. 

•If a new version of MySQL implements a built-in function with the same name as an existing stored function, you have two choices: Rename the stored function to use a nonconflicting name, or change calls to the function so that they use a schema qualifier (that is, use schema_name . func_name () syntax). In either case, modify any affected code accordingly. 

## 9.3 Keywords and Reserved Words 

Keywords are words that have significance in SQL. Certain keywords, such as SELECT , DELETE , or BIGINT , are reserved and require special treatment for use as identifiers such as table and column names. This may also be true for the names of built-in functions. 

Nonreserved keywords are permitted as identifiers without quoting. Reserved words are permitted as identifiers if you quote them as described in Section 9.2, “Schema Object Names” : 

mysql> CREATE TABLE interval (begin INT, end INT); ERROR 1064 (42000): You have an error in your SQL syntax ... near ’interval (begin INT, end INT)’ 

BEGIN  and END  are keywords but not reserved, so their use as identifiers does not require quoting. INTERVAL  is a reserved keyword and must be quoted to be used as an identifier: 

mysql> CREATE TABLE ‘interval‘ (begin INT, end INT); Query OK, 0 rows affected (0.01 sec) 

Exception: A word that follows a period in a qualified name must be an identifier, so it need not be quoted even if it is reserved: 

mysql> CREATE TABLE mydb.interval (begin INT, end INT); Query OK, 0 rows affected (0.01 sec) 

Names of built-in functions are permitted as identifiers but may require care to be used as such. For example, COUNT  is acceptable as a column name. However, by default, no whitespace is permitted in function invocations between the function name and the following (  character. This requirement enables the parser to distinguish whether the name is used in a function call or in nonfunction context. For further details on recognition of function names, see Section 9.2.5, “Function Name Parsing and Resolution” . 

The INFORMATION_SCHEMA.KEYWORDS  table lists the words considered keywords by MySQL and indicates whether they are reserved. See Section 26.3.17, “The INFORMATION_SCHEMA KEYWORDS Table” . 

•MySQL 8.0 Keywords and Reserved Words 

•MySQL 8.0 New Keywords and Reserved Words 

