我需要创建将第二个表名称中的参数连接到表的过程

时间:2019-07-25 00:51:46

标签: mysql sql procedure

我有两种方案,分别是' sch1 ',' sch2 '

我在 sch1 中拥有ID。 tbl1 id

例如,如果 id = 12 ,则表示我处于第二种方案表( sch2 k12 )。

所以我需要创建一个过程,该过程将搜索 sch2 中的字段。 k + id ,但我不太了解该怎么做。如果有人能大致实现我将不胜感激

-UPD- 我做到了,也许将来会对某人有所帮助

我明白了:

DELIMITER $
CREATE PROCEDURE findSomething()
BEGIN
DECLARE ID INTEGER;
DECLARE ID_adt INTEGER;
create temporary table temp_table(k_id INTEGER, col INTEGER);
set ID := (SELECT max(id) from sch1.tbl1);
WHILE ID > 0 DO
SET ID_adt = ID ;
SET @set1 = CONCAT('SELECT max(ID) from sch2.k',ID,' into @example1');
PREPARE stmt from @set1;
EXECUTE stmt;
SET @set2 = CONCAT('SELECT col FROM sch2.k',col,' where ID = @example1 into @example2');
PREPARE stmt from @set2;
EXECUTE stmt;
INSERT INTO temp_table (ID,col) VALUES(ID,@example2);
DEALLOCATE PREPARE stmt;
set ID = (SELECT max(ID) from billing.projects where ID < ID_adt);
END WHILE;
select * from temp_table;
drop temporary table temp_table;
END $
delimiter ;

0 个答案:

没有答案