sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg lave en opkaldsprocedure på en ekstern MySQL Ubuntu-server?

AFAIK, du kan ikke kalde en procedure gemt på server A fra server B.

Det jeg ville gøre er:

  1. Rediger proceduren, så outputtet gemmes i en tabel.
  2. Brug mysqldump for at dumpe dataene fra denne outputtabel og gemme dem på den anden server.

Eksempel:

På server A kan proceduren være sådan her:

delimiter $$
create procedure my_procedure()
begin
    -- Create a table to store the output:
    drop table if exists temp_result;
    create table temp_result (
        CID int not null primary key,
        name varchar(50)
    );
    -- Populate the table
    insert into temp_result
        select ...
end $$
delimiter ;

På server B skal du udføre følgende sætning i shellen, ikke i MySQL CLI :

mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B

hvor:

  • De nødvendige muligheder for at oprette forbindelse til server A fra server B:
    -h -u -p .
  • db_A Databasen i server A, hvor resultatet er gemt
  • De nødvendige muligheder for at oprette forbindelse til server B:
    -h localhost -u -p


  1. Mysql hvor 1 =0 forvirring

  2. XAMPP - MySQL lukning uventet

  3. PHP mysql søg i flere tabeller ved hjælp af et nøgleord

  4. Forskellen mellem WITH-klausul og underforespørgsel?