我在PHP中有以下的MySQL查询,它工作正常。查询在MySQL和PHP中运行良好,但不在java中
$strUpdate = "INSERT INTO `batchfolder`.`newbatch` (`BatchID` ,`Batch` ,`barcode` ,`PG`)VALUES (NULL , '', '1', '')";
当我直接在数据库中运行它也很好。
然而,当我在Java运行它,
try {
conn = DriverManager.getConnection (url, userName, password);
Statement st = conn.createStatement();
st.execute("INSERT INTO `batchfolder`.`newbatch` (`BatchID` ,`Batch` ,`barcode` ,`PG`)VALUES (NULL , '', '1', '')");
st.close();
}
它提供了以下错误。
Exception in thread "main" java.sql.SQLException: Field 'Pre' doesn't have a default value
Pre是数据库中的下一行,它没有默认值。
我的问题是,那么这个查询如何在mysql和php中正常运行。
P.S BatchID是新批中的int(10) autoincremented
值。
这是我的表格结构。
CREATE TABLE IF NOT EXISTS `newbatch` (
`BatchID` int(10) NOT NULL AUTO_INCREMENT,
`Batch` varchar(100) NOT NULL,
`barcode` varchar(5) NOT NULL,
`Ly` varchar(5) NOT NULL DEFAULT '0',
`PG` varchar(5) NOT NULL,
`Pre` varchar(5) NOT NULL,
`Flu` varchar(5) NOT NULL,
`FluID` varchar(100) DEFAULT NULL,
`DateCreated` varchar(100) DEFAULT NULL,
`Comments` varchar(500) DEFAULT NULL,
PRIMARY KEY (`BatchID`),
UNIQUE KEY `FluID` (`FluID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1000160 ;
你可以显示表结构吗? – beck03076
'show create table newbatch'会有所帮助。 – Jeshurun
更新了表结构 – Ank