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

Thực thi nhiều truy vấn được phân tách bằng dấu chấm phẩy bằng cách sử dụng Câu lệnh chuẩn bị sẵn mysql

Không, no không thể. PREPARE / EXECUTE stmt chỉ có thể thực hiện một truy vấn tại một thời điểm, nhiều câu lệnh không thể kết hợp với nhau.
Xem tài liệu: http://dev.mysql. com / doc / refman / 5.0 / vi / standard.html

Dù sao, để đơn giản hóa mã của bạn, tôi sẽ tạo một thủ tục đơn giản:

CREATE PROCEDURE exec_qry( p_sql varchar(100))
BEGIN
  SET @tquery = p_sql;
  PREPARE stmt FROM @tquery;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END 
/

và tôi sẽ gọi thủ tục này trong thủ tục chính, theo cách này:

CALL exec_qry( 'CREATE TABLE t2 AS SELECT * FROM test');
CALL exec_qry( 'SELECT * FROM t2');
CALL exec_qry( 'SELECT count(*) FROM t2');
CALL exec_qry( 'SELECT avg(x) FROM t2');
CALL exec_qry( 'DROP TABLE t2');

Hãy xem bản trình diễn: http://www.sqlfiddle.com/#! 2 / 6649a / 6




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python, MySQL và SELECT xuất ra từ điển với các tên cột cho các khóa

  2. Cách tìm dữ liệu trùng lặp giữa hai bảng và xóa trên một bảng

  3. Làm cách nào để đặt mã hóa cho các cột char của bảng trong django?

  4. Chọn hàng ngẫu nhiên trong MySQL

  5. Làm cách nào để sử dụng tính năng băm mật khẩu với PDO để làm cho mã của tôi an toàn hơn?