Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi câu lệnh hợp nhất thành MYSQL bằng cách sử dụng khóa trùng lặp

Cú pháp đúng trong MySQL là:

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

Lưu ý việc sử dụng tiêu chuẩn phù hợp, rõ ràng , có thể đọc được JOIN cú pháp. Sử dụng nó.

Những thay đổi chính là

  • Sửa cú pháp cổ xưa.
  • Việc xóa dấu ngoặc đơn là không cần thiết cho select trong một chèn insert . . . select (mặc dù chúng có thể được cho phép).
  • Xóa bí danh của bảng, điều này chắc chắn không được phép.
  • Sửa on duplicate key tuyên bố.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thủ tục được lưu trữ bằng MySQL Workbench

  2. Lần đăng nhập đầu tiên:Trạng thái HTTP 500 - Xử lý yêu cầu không thành công; ngoại lệ lồng nhau là org.springframework.transaction.CannotCreateTransactionException

  3. Kết nối rất chậm (1 giây)

  4. Truyền MySQL của -1 trả về 18446744073709551615

  5. Bạn có thể sử dụng nhiều cột cho một truy vấn không có trong truy vấn không?