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

cách thực thi lệnh mysql DELIMITER

Có thể bạn không cần thay đổi dấu phân cách.

Dấu phân tách cần thiết trong CLI để cho biết vị trí kết thúc câu lệnh SQL, vì CLI sẽ tiếp tục đọc và thực thi các câu lệnh khác cho đến khi bạn yêu cầu nó dừng lại (ví dụ:với exit hoặc Control-D). Nhưng những gì nó thực sự đọc chỉ là một dòng ký tự; bằng cách nào đó nó cần phải tìm ra nơi một câu lệnh kết thúc và câu lệnh tiếp theo bắt đầu. Đó là những gì dấu phân cách làm.

Trong PHP, mỗi lệnh gọi hàm thực thi một câu lệnh. Không thể có nhiều câu lệnh trong một lệnh gọi hàm, vì vậy không cần có cách để phân tách chúng. Câu lệnh là toàn bộ chuỗi. Điều này đúng với mysql_query cũ cũng như mysqli_query mới hơn và PDO. Tất nhiên, có mysqli_multi_query nếu bạn thực sự muốn chuyển nhiều truy vấn cho một hàm.

Trong trường hợp của một thủ tục được lưu trữ / trigger / function / etc., Có thể có nhiều câu lệnh, nhưng điều đó được xử lý bởi chính MySQL (và luôn là ; , AFAIK). Đối với PHP, đó vẫn là một tuyên bố.

Cài đặt dấu phân cách mà bạn thấy trong phpMyAdmin có thể đang được sử dụng để tách các câu lệnh ra và có thể đang được thực hiện trong mã PHP. Nó phải làm điều này vì nó đang chấp nhận đầu vào của người dùng bao gồm nhiều câu lệnh, nhưng chỉ phải chuyển một câu lệnh cho mỗi lần gọi hàm. (Tôi chưa kiểm tra mã phpMyAdmin để hoàn toàn chắc chắn về điều này).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mảng PHP làm đầu vào cho Thủ tục đã lưu trữ

  2. Tạo thẻ html tùy chỉnh cho CMS?

  3. cách chèn mã HTML vào DB bằng php

  4. mysql quên ai đã đăng nhập:lệnh bị từ chối đối với người dùng '' @ '%'

  5. Cách cải thiện hiệu suất AWS của MySQL gấp 2 lần trên Amazon RDS với cùng chi phí