我在MySQL中有一个表,其中有几列具有指定的默认值,但是当我尝试插入行时(未为这些默认列指定值),它抛出错误,提示我无法插入NULL值。
这是表格示例;
CREATE TABLE `users` ( `Id` int(10) unsigned NOT NULL AUTO_INCREMENT, `UniqueName` varchar(120) NOT NULL, `Password` varchar(1000) NOT NULL, `PublicFlag` tinyint(1) NOT NULL, `NoTimesLoggedIn` int(10) unsigned NOT NULL DEFAULT '0', `DateTimeLastLogin` timestamp NOT NULL DEFAULT '1971-01-01 00:00:00', `UserStatusTypeId` int(10) unsigned NOT NULL, `Private` tinyint(1) NOT NULL DEFAULT '0', `SiteName` varchar(255) NOT NULL, `CountryId` int(10) NOT NULL DEFAULT '0', `TimeZoneId` varchar(255) NOT NULL DEFAULT 'UTC', `CultureInfoId` int(10) unsigned NOT NULL DEFAULT '0', `DateCreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `UserCreated` int(10) unsigned NOT NULL, `LastUpdatedBy` int(10) unsigned NOT NULL, `DateLastUpdated` datetime DEFAULT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `UniqueName_UNIQUE` (`UniqueName`), KEY `Index 3` (`SiteName`) )
它抱怨TimeZoneId,当我填充TimeZoneId时,它抱怨CultureInforId。
我正在使用MySQL版本:5.1.43-community
这是我尝试插入的插入查询,是从NHibernate Profiler中获取的:
INSERT INTO Users (UniqueName, Password, PublicFlag, NoTimesLoggedIn, DateTimeLastLogin, SiteName, TimeZoneId, DateCreated, DateLastUpdated, Private, CountryId, CultureInfoId, UserCreated, LastUpdatedBy, UserStatusTypeId) VALUES ('zma@zm.com','u1uhbQviLp89P9b3EnuN/Prvo3A4KVSiUa0=',1, 0,'1/01/1971 12:00:00 AM','V9O1T80Q6D',NULL,'2/08/2010 2:13:44 AM', '2/08/2010 2:13:44 AM',0, NULL, NULL, 4, 4,31)
改用DEFAULT关键字:
DEFAULT
INSERT INTO users (TimeZoneId) VALUES (DEFAULT);