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

Hvordan bruger man Mysql-variabler med Hibernate?

Nå, jeg bruger endelig lagret procedure (ja, hvad jeg ikke vil have i starten) til at oprette dynamisk forespørgsel (jeg tror ikke, det var muligt).

Her er min kode:Den lagrede procedure:

DELIMITER |

DROP PROCEDURE IF EXISTS UpdateRank |

CREATE PROCEDURE UpdateRank(IN shortcut varchar(30))
BEGIN
    SET @rank=0;
    SET @query=CONCAT('UPDATE Rank SET ', shortcut, '[email protected]:[email protected]+1 ORDER BY ', shortcut);     

    PREPARE q1 FROM @query;
    EXECUTE q1;
    DEALLOCATE PREPARE q1;
END;

|
DELIMITER ;

Tipset er brugen af ​​CONCAT-funktionen til dynamisk at oprette en forespørgsel i den lagrede procedure.

Kald derefter proceduren i den klassiske dvalefunktion:

Query q = em.createNativeQuery("CALL updateRank('lvl')");
q.executeUpdate();


  1. Indstil en standardværdi for en kolonne i SQLite:DEFAULT Constraint

  2. mysqldump:Kunne ikke udføres. Ukendt tabel 'column_statistics' i informationsskema

  3. Hvordan man proaktivt indsamler SQL Server-indekser Fragmenteringsoplysninger

  4. Sådan læser du MySQL binære logfiler (BinLog) med mysqlbinlog