 |
|
ผมต้องการจะเก็บ log การทำงานของ user โดยใช้ trigger เก็บข้อมูลต่างๆดังต่อไปนี้
//ตาราง user ใช้เก็บ user ที่เข้ามาใช้งานในระบบ
create table user
(user varchar(50),
pass varchar(50)
);
//ตาราง work ใช้เก็บงานที่อยู่ในระบบ
create table work
(work_id varchar(50),
work_name varchar(50),
work_content varchar(50)
);
//ตาราง log_work ใช้เก็บการทำงานที่ทำให้เกิดการเปลี่ยนแปลงในตาราง work
create table log_work
(work_id varchar(50),
work_name_old varchar(50),
work_name_new varchar(50),
work_content_old varchar(50),
work_content_new varchar(50),
action varchar(50),//การทำงาน เช่น insert update delete
time date, //เวลาที่ทำ
user varchar(50) //ผู้ที่ทำ
);
// trigger ที่ใช้เพิ่มข้อมูลลงไปในตาราง log_work เมื่อมีการ update ข้อมูลในตาราง work
create trigger tri_up_log_work
AFTER update ON work
FOR EACH ROW
begin
insert into log_work values(old.work_id,old.work_name,new.work_name,old.work_content,new.work_content,'update',now(),'user');
end;
โดยระบบของผมคือเมื่อ user login เข้าระบบมาทำการแก้ไขข้อมูล trigger ก็จะเอาชื่อ user ของผู้ที่เข้ามา update ไปเ็ก็บไว้ในตาราง log_work เพื่อแสดงผู้ที่ทำการ update ด้วย
ซึ้งปัญหาคือ trigger มันไม่รู้จัก user ผมควรแก้ไขยังไงดีอ่ะครับ
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2013-08-13 13:15:22 |
By :
99thSecret |
View :
1569 |
Reply :
2 |
|
 |
 |
 |
 |
|
|
|
 |