MySQL-无法在列中插入NULL值,但是我指定了默认值吗?

我在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关键字:

INSERT INTO users (TimeZoneId) VALUES (DEFAULT);

以上是 MySQL-无法在列中插入NULL值,但是我指定了默认值吗? 的全部内容, 来源链接: utcz.com/qa/403969.html

回到顶部