gpt4 book ai didi

更新前的 MySQL 触发器 - 从字符串设置日期格式

转载 作者:行者123 更新时间:2023-11-29 22:28:36 25 4
gpt4 key购买 nike

我有一个网站,当我更改值并按输入在数据库中更新时,我可以通过单击表格来更新行的日期。

我想要什么:在日期字段中。只需输入 mm/dd(例如 05-20)按 Enter 键即可。

那么我的触发器应该:

CREATE TRIGGER before_transactions_update 
BEFORE UPDATE
ON Transactions FOR EACH ROW

BEGIN
-- variable declarations
declare inputDate integer;


-- trigger code
-- get month and day
-- LEFT(inputDate, 2); RIGHT(inputDate, 2)
-- STR_TO_DATE('2015,MONTH(LEFT),DAY(RIGHT)','%Y,%m,%d');
SET INSERTED.date = 2015-month-day-00-00-00;

END;

这是我“尝试过”的,或者至少是我自己尝试过的。 MySQL工作台在我的var声明处阻止我,它告诉我声明后需要一个分号,但我似乎不需要

所以我已经在谷歌上搜索了几个小时,作为 MySQL 的新手,我遇到了一个死胡同,所以有人可以填写空白或为我指出正确的方向,

那就太好了

最佳答案

您不能将输入参数直接传递到触发器中,除非该输入位于更新语句

您还需要在触发器中指定分隔符。

如果您的输入值始终采用 m-d 形式(如示例中所示),并且 year 是当前年份,那么以下触发器应该可以完成这项工作。

delimiter //
CREATE TRIGGER before_transactions_update BEFORE UPDATE
ON Transactions
FOR EACH ROW
BEGIN
if length(new.date) = 5 then
set new.date = concat(year(curdate()),'-',new.date);
end if ;
END;//

delimiter ;

关于更新前的 MySQL 触发器 - 从字符串设置日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com