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

Một thủ tục được lưu trữ có thể hoạt động với hai cơ sở dữ liệu khác nhau không? Làm thế nào về hai máy chủ?

Nếu chúng ta đang nói về hai cơ sở dữ liệu trên cùng một máy chủ:vâng, một thủ tục được lưu trữ có thể truy cập cơ sở dữ liệu khác. Bạn phải đảm bảo rằng người dùng có đặc quyền mà thủ tục đang được chạy có các đặc quyền cần thiết trên mỗi cơ sở dữ liệu.

Ví dụ:giả sử bạn có hai cơ sở dữ liệu trên cùng một máy chủ, mydb1mydb2 và mỗi bảng chứa một bảng có tên messages với cấu trúc giống nhau. Giả sử bạn muốn thêm một thủ tục được lưu trữ vào mydb2 sẽ làm trống messages bảng trong mydb2 và sao chép nội dung của messages bảng trong mydb1 . Bạn có thể làm điều này:

CREATE PROCEDURE `SynchroniseMessages` ()
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY DEFINER
BEGIN

DELETE FROM `mydb2`.`messages`;

INSERT INTO
    `mydb2`.`messages`
    SELECT * FROM `mydb1`.`messages`;

END

Xem cách tôi đã hoàn toàn đủ điều kiện cho các bảng với cơ sở dữ liệu mà chúng thuộc về. Trên thực tế, bạn có thể tranh luận rằng tôi đang quá sốt sắng ở đây, bởi vì chúng tôi đã chỉ định rằng thủ tục được lưu trữ này sẽ thuộc về mydb2 . Tôi không cần thêm mydb2 . vòng loại. Nếu thủ tục được lưu trữ trong mydb1 cơ sở dữ liệu, tôi sẽ cần những định tính đó, nhưng ngược lại, tôi sẽ không cần mydb1 . nơi nó xuất hiện.

Để có thể chạy thủ tục này (có thể để có thể xác định nó?), Tôi cần đảm bảo rằng người dùng của mình có DELETEINSERT đặc quyền trên mydb2 và cả SELECT đặc quyền trên mydb1 .

Cơ sở dữ liệu trên các máy chủ khác nhau nghe có vẻ phức tạp hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn mySQL phức tạp trong trang php

  2. Chú thích Công thức Hibernate - Các hàm MySql:INTERVAL, DAY

  3. gạch dưới trong biến php db gây ra sự cố

  4. docker soạn:kết nối khởi động mùa xuân với cơ sở dữ liệu mysql bị từ chối

  5. Đây có phải là một lược đồ DB tốt cho các vị trí không