sql >> Databáze >  >> RDS >> Mysql

Jak mohu zavolat uloženou proceduru na vzdáleném serveru MySQL Ubuntu?

AFAIK, nemůžete volat proceduru uloženou na serveru A ze serveru B.

Co bych udělal, je:

  1. Upravte postup tak, aby byl výstup uložen v tabulce.
  2. Použijte mysqldump vypsat data této výstupní tabulky a uložit je na jiný server.

Příklad:

Na serveru A může být postup podobný tomuto:

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 ;

Na serveru B proveďte následující příkaz v shellu, ne v MySQL CLI :

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

kde:

  • Možnosti potřebné pro připojení k serveru A ze serveru B:
    -h -u -p .
  • db_A Databáze na serveru A, kde je uložen výsledek
  • Možnosti potřebné pro připojení k serveru B:
    -h localhost -u -p


  1. Optimalizace Mysql pro REGEXP

  2. vytvoření databáze v mysql z javy

  3. Převést „čas“ na „datetime2“ v SQL Server (příklady T-SQL)

  4. Jak používat příkaz GO na serveru SQL k vkládání záznamů do sloupce identity - SQL Server / Výukový program T-SQL, část 42