我正在学习 JDBC,并且正在尝试制作一个银行程序。我正在使用 mySQL 制作包含用户和余额表的程序数据库。我想制作一个触发器,当用户表中输入数据时,它会自动创建数据
到目前为止,我编写的代码无效:
create trigger onInputUsers before insert on users
for each row
begin
insert into finances (id,balance,debt) values (null,0,0);
end;
最佳答案
注意:未提供您的表的表结构,因此假设存在诸如 userid
、balance
之类的列和 debt
在你的表中。
可以有两个触发器可以满足您的要求(一个在创建新用户时创建记录,另一个在用户进行交易时创建记录)!
这会处理为您的记录创建审计条目,这不是很需要(如果您征求我的意见)
DELIMITER $$
CREATE TRIGGER USER_FINANCE_TRIGGER BEFORE INSERT ON users
FOR EACH ROW
BEGIN
INSERT INTO finances (id, userid, balance, debt) VALUES (null, OLD.userid, 0, 0);
END$$
DELIMITER;
这会处理使用用户事件更新 finances
表:
DELIMITER $$
CREATE TRIGGER USER_FINANCE_UPDATE_TRIGGER BEFORE UPDATE ON balance
FOR EACH ROW
BEGIN
INSERT INTO finances (id, userid, balance, debt) VALUES (null, OLD.userid, OLD.balance, OLD.debt);
END$$
DELIMITER;
希望这能很好地回答您的问题!
关于mysql - MySQL : How to make a trigger that inserts data to another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215885/