Tôi muốn biết làm cách nào để tự động xóa bản ghi khi hết hạn, tôi đang tạo trang web đặt vé máy bay. Tôi cần phải xóa khỏi cơ sở dữ liệu mysql của tôi tất cả các chi tiết chuyến bay hết hạn. Tôi đọc ở đâu đó mà tôi có thể sử dụng cron nhưng tôi không có ý tưởng làm thế nào để làm điều đó. Bất kỳ Trợ giúp nào cho tập lệnh sẽ rất hữu ích.Tự động xóa bản ghi trong bảng khi ngày hết hạn?
Trả lời
Bạn có thể cố gắng sử dụng MySQL Events
cho rằng:
CREATE EVENT IF NOT EXISTS `dbName`.`eventName`
ON SCHEDULE
EVERY 1 DAY // or 1 HOUR
COMMENT 'Description'
DO
BEGIN
DELETE FROM `dbName`.`TableName` WHERE `DateCol` < NOW();
END
LƯU Ý rằng MySQL Event Scheduler cần phải được kích hoạt trên máy chủ của bạn: info
SET GLOBAL event_scheduler = ON;
More here.
bạn có biết lý do nào tại sao giá trị> = không hiển thị giá trị TODAY không? như thể tôi đang nhập> mà không có = – cmario
@cmario nó phụ thuộc vào những gì bạn thực sự so sánh. – BlitZ
Tôi đã tìm cách để làm điều đó SELECT * FROM 'table' WHERE' date'> = date (NOW()). Cảm ơn vi đa trả lơi – cmario
Bạn cần dịch vụ để kiểm tra hồ sơ đã hết hạn và xóa định kỳ. Bạn nên sử dụng SQL này:
DELETE YourTable ĐÂU RecordDate < @Expiration
hồ sơ Xóa không phải là một ý tưởng tốt, tôi sẽ đề nghị bạn Thêm ActiveFrom và ActiveTo DateTime Cột trong bảng chi tiết của bạn sau đó không hiển thị các hồ sơ đã hết hạn trong giao diện người dùng của bạn.
Cron phù hợp nhất trong hoàn cảnh của bạn.
- Tạo tệp php xóa hoặc gắn cờ chuyến bay không mong muốn, tập lệnh sẽ chỉ kết nối với cơ sở dữ liệu, thực hiện truy vấn của bạn và có thể xuất ra thông báo lỗi/thành công ngắn.
- Thiết lập công việc định kỳ thực thi tập lệnh php đó mỗi X giờ hoặc bất cứ điều gì bạn muốn.
Nếu bạn đang sử dụng CPanel, bạn có thể thiết lập của bạn cron job from it
Make sử dụng CRON Jobs. Có một cái nhìn tại các đại diện dưới đây.
Minutes [0-59]
| Hours [0-23]
| | Days [1-31]
| | | Months [1-12]
| | | | Days of the Week [Numeric, 0-6]
| | | | |
* * * * * home/path/to/command/the_command.sh
Nếu bạn muốn lên lịch một nhiệm vụ chạy vào thứ 7 hàng tuần lúc 8:30 sáng, có thể nó sẽ giống như thế này.
30 8 * * 6 home/path/to/command/the_command.sh
Chỉ cần chơi xung quanh với cài đặt của bạn và bạn cuối cùng sẽ nhận được nó.
khoảng giây? – Faytraneozter
- 1. Ngày hết hạn JRE
- 2. Bản đồ với các yếu tố tự động hết hạn
- 3. Ngày/giờ ghi nhật ký MSSQL tự động xóa
- 4. Ngày hết hạn cookie
- 5. WinForm tự động đóng sau khi hết hạn?
- 6. Tự động hết hạn tin nhắn trong Camel
- 7. MySQL chậm khi xóa các bản ghi trong bảng lớn
- 8. Thời gian hết hạn ghi nhớ
- 9. XAP Hết hạn sau nửa ngày?
- 10. Xóa bản ghi trong bảng nhiều người
- 11. Ngày hết hạn hôm nay trong Java
- 12. Hết hạn bộ nhớ bảng Azure
- 13. Tự động xóa các bản ghi IntelliTrace cũ
- 14. Cookie Javascript không có ngày hết hạn
- 15. Ehcache cách xóa khóa khi phần tử hết hạn?
- 16. Ngày hết hạn để sao lưu Glacier
- 17. LRU được ghi nhớ và hết hạn
- 18. Làm cách nào để tự động đặt cookie hết hạn/maxAge trong Express/Node.js?
- 19. Cookie JSESSIONID có ngày hết hạn trong Tomcat
- 20. SSLVerifyClient bỏ qua ngày hết hạn
- 21. Powershell tìm người sử dụng hết hạn trong 7 ngày
- 22. thứ tự sắp xếp tăng :: weak_ptr sau khi hết hạn?
- 23. Tự động điền ngày vào bảng oracle
- 24. Xóa bản ghi từ nhiều bảng cùng một lúc?
- 25. xóa tất cả bản ghi khỏi bảng trong mysql
- 26. cách đặt ngày hết hạn trên cookie trong cfscript
- 27. Hết giờ hết hạn với SqlBulkCopy
- 28. Xóa bản ghi khỏi bảng điều khiển - Ruby on Rails
- 29. Hết hạn tiêu đề khi thử nghiệm trong Chrome
- 30. Điều gì xảy ra khi cột tăng tự động hết?
Lý do xóa nó. Chỉ cần không hiển thị nếu nó hết hạn –
Không cần. Sử dụng lịch trình dbms. Ví dụ, MySQL đã sở hữu [scheduler] (http://dev.mysql.com/doc/refman/5.1/en/events-overview.html). – BlitZ
sử dụng công việc crone để thực thi tập lệnh hết hạn tự động. – irfanmcsd