mysql添加字段默认null,MySQL-无法在列中插入NULL值,但是我指定了默认值吗?

I have a table in MySQL that have a few columns that have default values specified, but when I try to insert a row, (not specifying values for those default columns), it throws an error saying I cannot insert NULL values.

Here is the table example;

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`)

)

It complains about TimeZoneId, and when I populate TimeZoneId, it complains about CultureInforId.

I am using MySQL Version: 5.1.43-community

Here is the insert query I am trying to insert, grabbed from 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)

解决方案

Use the DEFAULT keyword instead:

INSERT INTO users (TimeZoneId) VALUES (DEFAULT);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值