【发布时间】:2010-07-16 01:16:19
【问题描述】:
首先,我知道这应该行不通。我们正在使用一个非常旧的 DAL/ORM(基于 Pear/DB/GenericDao)层,它错误地推测 id 不是自动增量/整数字段。
此语句在 5.0 Linux 中有效,在 5.1 Windows 中无效。 我的 ini 中是否有可能不同的设置(ignore_type_errors="yes":))?我真的不想在服务器升级任务中添加重写/升级这个 DAL/ORM(它早于我在公司)。
声明
INSERT INTO Party SET partyTypeID = 'PERSON',id = '',comment = '';
错误
Error Code: 1366
Incorrect integer value: '' for column 'id' at row 1)
表的 DDL
CREATE TABLE `Party` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`partyTypeID` varchar(32) NOT NULL DEFAULT '',
`comment` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `partyTypeID` (`partyTypeID`)
) ENGINE=MyISAM AUTO_INCREMENT=1017793 DEFAULT CHARSET=latin1;
【问题讨论】:
-
是否设置了任何特定的 SQL 模式? (运行
show variables like 'sql_mode');