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

Tôi không thể biết mình đã phạm phải sai lầm gì khi thực hiện Truy vấn MYSQL này

  • Bạn cần đặt Dấu phân cách thành bất kỳ thứ gì ngoại trừ ;
  • Theo tùy chọn, hãy kiểm tra xem thủ tục được lưu trữ cùng tên đã tồn tại hay chưa.
  • Cuối cùng, hãy xác định lại Dấu phân cách thành ;
  • Trừ khi, bạn sẽ sử dụng biến x bên ngoài thủ tục được lưu trữ này; bạn thực sự không cần sử dụng @; nó làm cho biến khả dụng ở mọi nơi trong phiên cụ thể đó).

Hãy thử (giải thích thêm trong phần bình luận):

CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table

DELIMITER $$ -- redefine the delimiter to $$ (for eg)

DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists

CREATE PROCEDURE handlerdemo ()
  BEGIN

    DECLARE x INT DEFAULT 0; -- datatype is INT 
    -- also a good practice to set default value

    SET x = 1; -- no need to use in Session context
    INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value

    SET x = 2; 
    INSERT INTO t1 VALUES (x); 

  END $$ -- remember that delimiter is $$ right now

-- redefine the Delimiter back to ;
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. Vấn đề hiệu suất và giải pháp mysql order by rand ()

  2. mysql hamming khoảng cách giữa hai phash

  3. Tại sao mysql_query () trả về TRUE với câu lệnh SELECT?

  4. Đặt và xác minh phiên bản SSL / TLS được sử dụng trong kết nối Python MySQL

  5. Truy xuất ghi chú mới nhất (theo dấu thời gian) trong một truy vấn duy nhất từ ​​bảng 1:n