我刚刚开始在Derby中学习和阅读有关TRIGGER的内容,我将其用作Java项目的数据库。我过去常常使用MSSQL作为数据库。
触发器只有一个问题。我找不到语法,我不知道如何在UPDATE触发器中指定要更新的行的ID。
这就是我所拥有的。
SET @ID = (SELECT ID FROM INSERTED)
它可以更新 USERNAME 列,但会影响/更新所有行,而不仅仅是一行。这就是我遇到问题的地方。
在MSSQL中,我可以简单地添加x| y | z | d
1| 0 | A | 0.1
2| 1 | B | 0.01
3| 0 | C | 0.01
,但我不知道如何在Derby中执行此操作。
如何在Derby上执行此操作?
感谢。
答案 0 :(得分:1)
我能够解决我的问题。只需添加WHERE子句并放入Id。
我希望这可以帮助新的德比用户。
CREATE TRIGGER COPY_UPDATED_USERNAME
AFTER UPDATE OF USERNAME ON ALLUSERS
REFERENCING NEW AS NEWUSERNAME_ROW
FOR EACH ROW MODE DB2SQL
UPDATE ALLUSERS_MAINTABSPERMISSION SET USERNAME = NEWUSERNAME_ROW.USERNAME
WHERE USERID = NEWUSERNAME_ROW.USERID;