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

MySQL INSERT INTO table SELECT FROM another_table, inde i en PROCEDURE

Hvor det er muligt, undgå at bruge CURSORs . SQL er designet til at gøre ting i bulk, ikke én række ad gangen.

Undersøg konstruktioner som

INSERT INTO ... SELECT ...;

CREATE TABLE ... SELECT ...;

For eksempel pods_cursor kan sandsynligvis elimineres via:

INSERT INTO tblResultsErrors
        (POD, QtyMeasured)
    SELECT els.LocationCode, els.Quantity 
        FROM EnergyLocation el 
        RIGHT JOIN EnergyLocationSeries els
          ON els.LocationCode = el.Code2 OR els.LocationCode = el.Codep 
        LEFT JOIN EnergyContract ec
          on ec.LocationId = el.Id 
        WHERE el.Code2 IS NULL; 

(Av. At blande HØJRE og VENSTRE får mit hoved til at snurre som en ugles.)

Brug OR i ON lyder meget ineffektivt. Hvad er hensigten?




  1. MySQL QUERY LIKE returnerer intet

  2. Sådan opretter du en menu i SQLPlus eller PL/SQL

  3. Oracle-forbindelsesstreng uden tnsnames.ora-fil

  4. Hvordan fortolkes sql med rekursiv sætning?