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

Tạo bảng tạm thời trong MySQL Stored Procedure

Tôi đã thu dọn nó một chút cho bạn và thêm mã ví dụ. Tôi luôn giữ cho các tên tham số của mình giống với các trường mà chúng đại diện nhưng có tiền tố là p_ để ngăn chặn sự cố. Tôi làm điều tương tự với các biến được khai báo trong phần thân mầm nhưng tiền tố bằng v_.

Bạn có thể tìm thấy một ví dụ khác của tôi ở đây:

Tạo cây dựa trên Độ sâu từ Dữ liệu phân cấp trong MySQL (không có CTE)

drop procedure if exists emp_performance;

delimiter #

create procedure emp_performance
(
in p_employee_id varchar(10)
)
begin

declare v_counter int unsigned default 0;

create temporary table tmp engine=memory select time_in, time_out 
 from attendance where employee_id = p_employee_id;

-- do stuff with tmp...

select count(*) into v_counter from tmp;

-- output and cleanup

select * from tmp order by time_in;

drop temporary table if exists tmp;

end#

delimiter ;

call emp_performance('E123456789');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đảm bảo an toàn cho kết nối cơ sở dữ liệu của tôi?

  2. Tuần trong năm cho các tuần bắt đầu từ thứ Bảy

  3. Kiểm tra tính hợp lệ của kết nối MySQL trong nguồn dữ liệu:CHỌN 1 hay cái gì đó tốt hơn?

  4. Trình tạo truy vấn Laravel KHÔNG CÓ TRONG

  5. SQLSTATE [23000]:Vi phạm ràng buộc toàn vẹn:1452 Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công