sql >> Database >  >> RDS >> Mysql

Conversie van samenvoeginstructie naar MYSQL met behulp van dubbele sleutel

De juiste syntaxis in MySQL is:

INSERT INTO XYZ (PARENT_JOB_NAME, CHILD_JOB_NAME, FIRST_EXECUTION, SANDBOX, PLATFORM_NAME)
    SELECT ITRR.WORKFLOW_NAME, ITRR.INSTANCE_NAME,
           MIN(ITRR.START_TIME), ITRR.SUBJECT_AREA, 'INFORMATICA'
    FROM ABC IWRR JOIN
         DEF ITRR
         ON IWRR.WORKFLOW_RUN_ID = ITRR.WORKFLOW_RUN_ID 
    WHERE IWRR.USER_NAME IN ('XYZ') AND
          ITRR.RUN_STATUS_CODE <> 2
    GROUP BY ITRR.WORKFLOW_NAME, ITRR.INSTANCE_NAME, ITRR.SUBJECT_AREA
ON DUPLICATE KEY UPDATE FIRST_EXECUTION = VALUES(FIRST_EXECUTION);

Let op het gebruik van de juiste, expliciete, standaard , leesbare JOIN syntaxis. Gebruik het.

De belangrijkste wijzigingen zijn

  • De archaïsche syntaxis repareren.
  • Het verwijderen van de haakjes is niet nodig voor de select in een insert . . . select (hoewel ze waarschijnlijk zijn toegestaan).
  • De tabelalias verwijderen, wat absoluut niet is toegestaan.
  • De on duplicate key verklaring.


  1. Maak verbinding met de MySQL-database en haal gegevens op in Julia

  2. Selecteer de tweede meest minimale waarde in Oracle

  3. MySQL-vraag - Unieke sleutel Werkt niet correct of begrijp ik het verkeerd?

  4. externe mysql-database verbinden met php