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