sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag en anropslagrad procedur på en fjärransluten MySQL Ubuntu-server?

AFAIK, du kan inte anropa en procedur lagrad i server A från server B.

Det jag skulle göra är:

  1. Ändra proceduren så att utdata lagras i en tabell.
  2. Använd mysqldump för att dumpa data från denna utdatatabell och lagra den på den andra servern.

Exempel:

På server A kan proceduren vara ungefär så här:

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, kör följande sats i skalet, inte i MySQL CLI :

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

där:

  • Alternativen som behövs för att ansluta till server A från server B:
    -h -u -p .
  • db_A Databasen i server A där resultatet lagras
  • Alternativen som behövs för att ansluta till server B:
    -h localhost -u -p


  1. Skaffa anställda som ligger under genomsnittslönen efter en löneförhöjning

  2. Hur man slumpmässigt ställer in text till knappar från SQLite utan upprepning?

  3. Hur justerar man skärminställningar för mysql-kommandoraden?

  4. Skapa en ny Ruby on Rails-applikation med MySQL istället för SQLite