首先,我用谷歌搜索了这个问题,但没有发现任何类似的情况。所以我感谢任何帮助。
我有一张桌子:
CREATE TABLE tinypurses.purses (
id SMALLINT(6) NOT NULL AUTO_INCREMENT,
Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
keyyy CHAR(100) DEFAULT NULL,
LastSeed SMALLINT(6) NOT NULL DEFAULT 0,
PRIMARY KEY (id),
INDEX purses_id_index (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 2
CHARACTER SET utf8
COLLATE utf8_general_ci;
当我尝试在其中插入新记录时,出现错误:
数据库错误:[MySQL][ODBC 5.1 Driver][mysqld-5.1.47-community]Column 'LastSeed' 不能为空
我很困惑,因为我明确设置了列“LastSeed”的值:
statement.prepare(connection(), "insert into purses (time, keyyy, LastSeed) values(?, ?, ?)");
statement.param(1).set_as_systemtime(sysTime);
statement.param(2).set_as_string(key);
statement.param(3).set_as_long(1);
if (!stmt.execute())
{
LOG << statement.last_error(); // got this error here
}
此外,此代码在 Windows XP 和 7 上运行良好,但在 Windows 8(具有相同版本的 MySQL 服务器)上无法正常工作。
有人知道为什么它会以如此奇怪的方式工作吗?
谢谢你。