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

Có cách nào để tự động tạo trình kích hoạt khi tạo bảng mới trong MySQL không?

Như tôi đã chỉ ra trong câu hỏi khác của bạn , Tôi nghĩ rằng một quy trình và xem xét bảo mật đang được thực hiện ở đây. Đó là cơ sở dữ liệu đã được kiểm toán, vì vậy không ai ( đặc biệt là nhà cung cấp dịch vụ bên thứ ba) nên tạo bảng trong cơ sở dữ liệu của bạn mà bạn không biết .

Vấn đề bạn gặp phải là, cũng như bảng mới đang được tạo, bạn cũng sẽ cần tạo một bảng khác để lưu trữ các bản ghi đã được kiểm toán / thay đổi, bảng này sẽ có cấu trúc giống như bảng ban đầu, có thể có ngày / giờ. và cột người dùng. Nếu nhà cung cấp bên thứ ba đang tạo bảng này, họ sẽ không biết để tạo bảng kiểm tra, do đó, ngay cả khi bạn có thể tạo động các trình kích hoạt của mình, chúng sẽ không hoạt động.

Không thể tạo một bảng duy nhất sẽ lưu giữ tất cả các bản ghi thay đổi cho tất cả các bảng khác trong cơ sở dữ liệu của bạn vì cấu trúc giữa các bảng chắc chắn sẽ khác nhau.

Do đó:thực hiện tất cả các yêu cầu thay đổi (ví dụ:nhà cung cấp muốn tạo TableX, họ gửi yêu cầu thay đổi (bao gồm cả tập lệnh SQL) giải thích lý do thay đổi) cho chính bạn và / hoặc nhóm của bạn.

Bạn thực thi SQL trên bản sao thử nghiệm của cơ sở dữ liệu của mình và sử dụng cấu trúc tương tự để tạo một bảng khác để chứa các bản ghi đã sửa đổi.

Sau đó, bạn tạo và kiểm tra các trình kích hoạt cần thiết, tạo một tập lệnh SQL mới để tạo hai bảng và các trình kích hoạt của bạn và thực thi điều đó trên cơ sở dữ liệu trực tiếp của bạn. Bạn cấp cho nhà cung cấp quyền sử dụng bảng mới và họ sẽ biến mất.

Mọi người đều vui vẻ. Có, có thể lâu hơn một chút, và vâng, bạn sẽ có nhiều việc phải làm, nhưng đó là số lượng công việc ít hơn rất nhiều so với yêu cầu thử và phân tích cú pháp nhật ký truy vấn để tạo lại các bản ghi đã được thay đổi / đã xóa hoặc phân tích cú pháp nhật ký nhị phân và luôn cập nhật mọi thay đổi và sửa đổi mã của bạn khi định dạng của tệp nhật ký thay đổi, v.v.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trừ một hàng dữ liệu từ một hàng khác trong SQL

  2. Hàm GROUP_CONCAT () trong MySQL

  3. Nhóm MySQL theo Ngày giữa

  4. Làm thế nào để lấy dữ liệu từ 2 bảng?

  5. MySQL - Kiểm soát hàng nào được trả về bởi một nhóm bởi