create table test (id int primary key auto_increment, content varchar(10));
create table record (id int,content varchar(10),`user` varchar(20));
delimiter //
create trigger record_insert_id after insert on test for each row
begin
if not exists (select 1 from record where `user`=user()) then
insert record values(new.id,new.content,user());
else
update record set id=new.id,content=new.content where `user`=user();
end if;
end//
delimiter ;
-- have user1 insert:
insert test (content) values('aaa'),('bbb');
-- have user2 insert:
insert test (content) values('xxx'),('yyy');
-- have user3 insert:
insert test (content) values('abcxyz');
select * from record;
-- result set:
# id, content, user
2, bbb, user1@localhost
4, yyy, user2@localhost
5, abcxyz, user3@localhost
2条答案
按热度按时间d5vmydt91#
我们可以使用一个触发器来记录最后一次插入的id以及执行插入语句的数据库用户。这不会区分应用程序用户,因为多个应用程序用户可能使用同一个数据库用户帐户来执行其工作)
3htmauhk2#
用途
获取表中已插入或更新的最后一行的LAST ID。