CREATE FUNCTION IF NOT EXISTS metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 0 CREATE FUNCTION metaphon RETURNS INT SONAME "$UDF_EXAMPLE_SO"; ERROR HY000: Function 'metaphon' already exists SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 0 CREATE FUNCTION IF NOT EXISTS metaphon RETURNS REAL SONAME "UDF_EXAMPLE_LIB"; Warnings: Note 1125 Function 'metaphon' already exists SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 0 DROP FUNCTION IF EXISTS metaphon; CREATE FUNCTION IF NOT EXISTS metaphon RETURNS REAL SONAME "UDF_EXAMPLE_LIB"; SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 1 CREATE OR REPLACE FUNCTION IF NOT EXISTS metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; ERROR HY000: Incorrect usage of OR REPLACE and IF NOT EXISTS SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 1 CREATE OR REPLACE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; SELECT ret FROM mysql.func WHERE name like 'metaphon'; ret 0 CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; ERROR HY000: Function 'metaphon' already exists SELECT metaphon('mariadb'); metaphon('mariadb') MRTB DROP FUNCTION metaphon; DROP FUNCTION IF EXISTS metaphon; Warnings: Note 1305 FUNCTION test.metaphon does not exist