考虑table1的表模式:
id: int country_id: int description: varchar(50)
和查询:
INSERT INTO table1(id, country_id, description) VALUES (1, '20', 'Test Desc');
这可以在MySQL 4x下运行但在MySQL 5x下会失败(ERROR 1067(42000):...的默认值无效。)。
我知道发生这种情况的原因 - country_id 是 int ,因此不应引用。是否有一个5x以下的mysql开关使其行为像4x,所以查询不会失败?
我继承了一个使用这样的查询的应用程序,我正在寻找快速修复,直到我找到时间来修复所有查询。
谢谢
答案 0 :(得分:1)
'20'没有问题。 MySql(5.x)还将'20'转换为20并且=>这是一个有效的插入