我试图在插入之前创建一个MySQL触发器:
BEGIN
SET NEW.order_date = STR_TO_DATE(NEW.order_date, '%d/%m/%Y');
END
但是当我导入包含“05/07/2017”等记录的.csv时,触发器只导入NULL
我知道如何解决这个问题?
答案 0 :(得分:0)
在搜索时,这似乎是一个在不同地方被问过几次的问题,但我找不到解释原因的方法。
正如我在上面的评论中所提到的那样,触发过程太迟,无法正确转换数据。
为了让触发触发器,必须将数据转换为适当的数据类型以插入表中。
因此,在将数据传递给str_to_date()
时,您只能使用强制date
字段,而不是初始字符串。
有两种方法可以解决这个问题:
varchar
字段导入,然后使用触发器将其转换为date
字段