0
我已创建的库数据库和表中的一个是transaction
我想更新return_timestamp
arrtibute其是如下Mysql的触发器或存储过程在同一个表B列
CREATE TABLE action
(
t_id int NOT NULL AUTO_INCREMENT,
b_id int,
m_id int,
borrow_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_returned Bool Default 0,
is_lost Bool,
is_damaged Bool,
return_timestamp TIMESTAMP,
f_id int,
PRIMARY KEY (t_id),
CONSTRAINT fk_bookId FOREIGN KEY (b_id) REFERENCES book(b_id),
CONSTRAINT fk_memberId FOREIGN KEY (m_id) REFERENCES member(m_id),
CONSTRAINT fk_fineId FOREIGN KEY (f_id) REFERENCES fine(f_id)
);
的更新来更新列A当is_returned
更改为1
这是时间戳我想这
CREATE TRIGGER update_return_timestamp
AFTER UPDATE
ON action FOR EACH ROW
BEGIN
DECLARE return_timestamp timestamp;
SELECT is_returned FROM action
IF is_return IS 1
BEGIN
INSERT INTO transaction (return_timestamp) VALUES (now())
END
COMMIT TRANSACTION
END
我哪里错了?或者什么是正确的方法?我不知道该怎么做
此代码是否工作?交易是一个保留的关键字http://dev.mysql.com/doc/refman/5.7/en/commit.html – e4c5
是的,它确实工作..我得到了与上述代码 – Penny
创建表,但请考虑更改为更合理表名。您的触发器函数看起来非常混乱,因为无法分辨您是在引用事务表还是事务关键字。 – e4c5