2009-12-26 29 views
12

Tôi có một bảng trông như thế nàyLiệu sqlite3 có hỗ trợ trình kích hoạt để tự động cập nhật trường datetime 'updated_on' không?

user_id | name | created_on | updated_on 
-------------------------------------------------- 
1   | Peter D | 1/1/2009  | 

Nếu tôi chèn hoặc cập nhật hồ sơ, tôi muốn kích hoạt để cập nhật các lĩnh vực updated_on với datetime ('bây giờ'). Nhưng tôi không thể tìm thấy tên hàm để nhắm mục tiêu hàng được cập nhật gần đây nhất trong sqlite3. Có cái nào không?

+0

http://www.sqlite.org/lang_createtrigger.html –

+0

Cảm ơn Hassan, Vấn đề là tôi không thể tìm cách, từ bên trong trình kích hoạt, nhắm mục tiêu hàng cập nhật cuối cùng trong sqlite3. Tôi sử dụng 'last_insert_rowid()' trong trình kích hoạt khác. Nhưng tôi đang tìm 'last_update_rowid()' và không thể tìm thấy thứ gì giống như vậy. –

+0

Câu trả lời được cung cấp bởi @DougCurrie hoạt động thực sự tốt! Thật là một điều đáng tiếc khi tài liệu SQLite không rõ ràng như vậy [Tạo kích hoạt SQLite] (http://www.sqlite.org/lang_createtrigger.html) – Caumons

Trả lời

24
CREATE TRIGGER your_table_trig AFTER UPDATE ON your_table 
BEGIN 
    update your_table SET updated_on = datetime('now') WHERE user_id = NEW.user_id; 
END; 
+0

Làm việc như một sự quyến rũ! Cảm ơn. –

+0

Nếu điều này trả lời câu hỏi của bạn, thông thường là SO để "Chấp nhận" câu trả lời bằng cách nhấp vào dấu kiểm bên cạnh câu trả lời. –

Các vấn đề liên quan