你能帮我解决错误吗?截断错误的DOUBLE值' MySQL 6.3中的错误代码(1292)?我已经搜索了一个稳定的小时,在所有类似的问题中找不到合适的答案:
我的任务是将触发器插入电影数据库。如果有人尝试更新现有值或将新值插入架构' made_money',则应确保该类别属于四个基类之一(请参阅代码)。如果它没有,则默认为" Action"。我为此构建并执行了两个触发器(因为我不知道如何将UPDATE和INSERT放入单个触发器中):
delimiter //
CREATE TRIGGER movie_categories_A BEFORE UPDATE ON made_money
FOR EACH ROW
BEGIN
IF NEW.Category NOT IN ("Romantic", "Comedy", "Drama", "Action") THEN
SET NEW.Category = "Action";
END IF;
END;//
delimiter ;
delimiter //
CREATE TRIGGER movie_categories_B AFTER INSERT ON made_money
FOR EACH ROW
BEGIN
IF Category NOT IN ("Romantic", "Comedy", "Drama", "Action") THEN
SET Category = "Action";
END IF;
END;//
delimiter ;
此外,还有一个新的 这三个触发器都已执行,但我不确定它们是否是错误的。现在我的任务是在' made_money': 我知道' ACTON'拼写错误(我想这是练习的一部分),但遗憾的是,这会导致以下错误: 如果我拼写动作'同样的事情也会发生。正确。如果您有任何想法,请告诉我。 最佳,
扬delimiter //
CREATE TRIGGER condensed_test AFTER INSERT ON made_money
FOR EACH ROW
BEGIN
INSERT INTO log_data
SET Movie = NEW.Movie AND Category=NEW.Category;
END;//
delimiter ;
INSERT INTO made_money (MOVIE,HOW_MUCH,DAY_OPENED,Category)
VALUES ('Iron Man', 1000000, '2008-05-02', 'ACTON');
Error Code: 1292. Truncated incorrect DOUBLE value: 'Iron Man'
答案 0 :(得分:0)
尝试更改c
的数据类型,尝试将其设为Movie
,
你可以参考Similar issue
答案 1 :(得分:0)