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

Cách chuyển đổi con trỏ SQL Server sang MySQL tương đương

MySQL tương đương sẽ như thế này:

BEGIN
  DECLARE CurrentFirstName VARCHAR(300);
  DECLARE CurrentAge INT;
  DECLARE done INT DEFAULT FALSE;
  DECLARE CursorName CURSOR FOR
    SELECT FirstName, Age FROM Customers;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  OPEN CursorName;
  myloop: LOOP
    FETCH CursorName INTO CurrentFirstName, CurrentAge;
    IF done THEN
      LEAVE myloop;
    END IF;
    IF CurrentAge > 60 THEN
      insert into ElderCustomers values (CurrentFirstName,CurrentAge);
    END IF;
  END LOOP;
  CLOSE CursorName;
END;

Sự khác biệt lớn là trong vòng lặp, sử dụng BỘ XỬ LÝ TIẾP TỤC để đặt cờ khi không còn hàng nào để tìm nạp và thoát khỏi vòng lặp khi cờ được đặt. (Điều đó trông xấu xí, nhưng đó là cách nó được thực hiện trong MySQL.)

Ví dụ này đặt ra câu hỏi tại sao điều này không được viết (hiệu quả hơn, trong cả SQL Server và MySQL) như:

INSERT INTO ElderCustomers (FirstName, Age)
SELECT FirstName, Age
  FROM Customers
 WHERE Age > 60



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuẩn hóa trong MYSQL

  2. Kích thước lưu trữ địa chỉ IPv4, IPv6 dưới dạng chuỗi

  3. Làm thế nào để sắp xếp một truy vấn MySQL theo một cột cụ thể?

  4. JSON_LENGTH () - Trả về độ dài của tài liệu JSON trong MySQL

  5. Giám sát các chèn MySQL từ các ứng dụng khác nhau