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

Các thủ tục được lưu trữ bằng MySQL Workbench

Khi sử dụng trình soạn thảo thủ tục dựng sẵn, MySQL Workbench thêm một số lệnh bổ sung:

USE `test`; // <----------
DROP procedure IF EXISTS `p2`;  // <----------

DELIMITER $$
USE `test`$$ // <----------
CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';
END $$

DELIMITER ; // <----------

Các lệnh đó không liên quan chặt chẽ đến cú pháp thủ tục được lưu trữ, chúng chỉ đơn thuần là hàng hóa — các ứng dụng khách MySQL khác (chẳng hạn như HeidiSQL hoặc tiện ích dòng lệnh chính thức) sẽ không thêm chúng. Thay đổi dấu phân cách cuối cùng có thể là đặt lại để tránh sự cố trong các câu lệnh trong tương lai trên cùng một kết nối.

Bạn cần thay đổi dấu phân cách để hướng dẫn khách hàng về nơi mã thủ tục bắt đầu và kết thúc. Vấn đề là thân thủ tục thường là một tập hợp các câu lệnh SQL nên việc bỏ qua thay đổi dấu phân cách sẽ khiến MySQL nghĩ rằng bạn đang cố chạy một loạt câu lệnh, câu lệnh đầu tiên sẽ là:

CREATE PROCEDURE test.`p2` ()
LANGUAGE SQL
DETERMINISTIC
COMMENT 'Adds "nson" to first and last names in the record.'
BEGIN
SELECT 'Hello World';

Với DELIMITER $$ bạn đang nói với MySQL rằng câu lệnh đầy đủ của bạn đến từ CREATE đến END . Nó chỉ là đường cú pháp:DELIMITER thậm chí không phải là một từ khóa SQL. Ví dụ:HeidiSQL cung cấp GUI với hộp văn bản nơi bạn viết phần nội dung thủ tục, do đó bạn không cần giải pháp DELIMITER.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL kiểm tra xem một bảng có tồn tại hay không mà không đưa ra một ngoại lệ

  2. Làm thế nào để chuyển đổi ngày của con người sang dấu thời gian unix trong Mysql?

  3. Tôi nên lưu trữ bao nhiêu chữ số có nghĩa trong cơ sở dữ liệu của mình cho một tọa độ GPS?

  4. Cách làm trống cơ sở dữ liệu MySQL

  5. Lỗi MySQL:Sử dụng không chính xác UPDATE và LIMIT