Điều này không thể được thực hiện trực tiếp bởi vì đầu ra của một lựa chọn không giới hạn trong một thủ tục được lưu trữ là một tập kết quả được gửi đến máy khách, nhưng không phải là một bảng về mặt kỹ thuật.
Cách giải quyết là để proc đưa dữ liệu vào một bảng tạm thời sau khi tạo bảng cho bạn. Bảng này sẽ chỉ có sẵn cho kết nối của bạn khi quy trình kết thúc. Nó sẽ không gây ra xung đột nếu ai đó khác chạy proc cùng lúc và sẽ không hiển thị với bất kỳ kết nối nào khác.
Thêm điều này vào quy trình:
DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
Khi thủ tục của bạn kết thúc, SELECT * FROM foo;
sẽ cung cấp cho bạn những gì bạn sẽ nhận được từ chương trình. Bạn có thể tham gia vào nó khá giống như bất kỳ bàn nào.
Khi bạn hoàn tất, hãy thả nó xuống hoặc nó sẽ tự biến mất khi bạn ngắt kết nối. Nếu bạn chạy lại chương trình, chương trình sẽ bị xóa và được tạo lại.