Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konwersja instrukcji scalania do MYSQL przy użyciu duplikatu klucza

Prawidłowa składnia w MySQL to:

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);

Zwróć uwagę na użycie właściwego, wyraźnego, standardowego , czytelne JOIN składnia. Użyj go.

Główne zmiany to

  • Naprawianie archaicznej składni.
  • Usunięcie nawiasów nie jest potrzebne do select we wstawce insert . . . select (choć prawdopodobnie są dozwolone).
  • Usunięcie aliasu tabeli, co zdecydowanie nie jest dozwolone.
  • Naprawianie on duplicate key oświadczenie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak ustawić długość kolumny w stanie hibernacji z maksymalną długością

  2. Ostrzeżenie:Nieprawidłowy argument podany dla foreach() w

  3. pokazywanie jednej kolumny kilka razy z danymi z 3 różnych przedziałów dat

  4. Przechowywanie danych statystycznych, czy potrzebuję DECIMAL, FLOAT czy DOUBLE?

  5. Unikalny, nieprzewidywalny, 12-cyfrowy, całkowity identyfikator