sql >> Database >  >> RDS >> Mysql

MySQL INSERT INTO table SELECT FROM another_table, binnen een PROCEDURE

Vermijd waar mogelijk het gebruik van CURSORs . SQL is ontworpen om dingen in bulk te doen, niet één rij tegelijk.

Bestudeer constructies zoals

INSERT INTO ... SELECT ...;

CREATE TABLE ... SELECT ...;

Bijvoorbeeld pods_cursor kan waarschijnlijk worden geëlimineerd 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; 

(Au. RECHTS en LINKS mengen doet mijn hoofd tollen als dat van een uil.)

OR . gebruiken in ON klinkt erg inefficiënt. Wat is de bedoeling?




  1. INT-vergelijking zonder WHERE-instructie

  2. Wat zijn macro's en hoe gebruik ik ze?

  3. De standaardpoort van mysql wijzigen van 3306 naar 3360

  4. Netwerktoegang geweigerd door toegangscontrolelijst (ACL) in Oracle Database 11g