将简单的postgreSQL函数转换为Mysql
我想知道我是否能得到一些帮助。我在Postgresql中有以下函数,该函数旨在为我提供一个“solrid”值,而不必每次都将其存储在数据库中,基本上是通过在值的开头添加一个“a”来工作的将简单的postgreSQL函数转换为Mysql,mysql,sql,database,linux,postgresql,Mysql,Sql,Database,Linux,Postgresql,我想知道我是否能得到一些帮助。我在Postgresql中有以下函数,该函数旨在为我提供一个“solrid”值,而不必每次都将其存储在数据库中,基本上是通过在值的开头添加一个“a”来工作的 -- Setup Solrid Function CREATE OR REPLACE FUNCTION solrid(IN local_id INTEGER, OUT result TEXT) AS $$ DECLARE database_id TEXT := 'A'; BEGIN result
-- Setup Solrid Function
CREATE OR REPLACE FUNCTION solrid(IN local_id INTEGER, OUT result TEXT) AS $$
DECLARE
database_id TEXT := 'A';
BEGIN
result := database_id || local_id::TEXT;
END;
$$ LANGUAGE PLPGSQL;
我现在必须将数据库移动到MySql,我想知道是否有人可以告诉我如何将此函数转换为MySql。以下是MySql中的相同函数:
DELIMITER //
DROP FUNCTION IF EXISTS solrid //
CREATE FUNCTION solrid(local_id INTEGER) RETURNS TEXT
BEGIN
DECLARE database_id TEXT;
SET database_id = 'A';
RETURN CONCAT(database_id, CAST(local_id AS CHAR));
END //
DELIMITER ;
您能提供示例输入和预期结果吗?仅供参考,这不需要用PL/PgSQL编写,简单的SQL函数将是
CREATE或REPLACE函数solrid(integer)返回文本为$$SELECT'A'| |$1;$$SQL语言
。这将要快得多,而且经常可以内联。这是一种将我的工作表“id”放入solr_id的方法,而不必存储solr_id。工作“id”可能是123,solr_id可能是123。Craig你能添加这个作为答案吗?@CraigRinger,你能解释一下它在哪里引用了初始id吗?一、 表作业“id”在哪里?