我需要运行更长的SQL查询以将数据从一个表迁移到另一个表。直到本周,当我迁移到Django 1.9.2和Python 3.5时,它一直运行良好。Django IntegrityError:无默认值
问题是该表的字段'last_update'默认为NULL。表定义为
last_update = models.DateTimeField("last updated",null=True, auto_now_add=False, auto_now=True)
我还与MySQL工作台检查,该表确实设置为允许在该领域空白和默认为NULL。
与错误信息大约30分钟后,查询崩溃:
django.db.utils.IntegrityError: (1364, "Field 'last_update' doesn't have a default value")
非常刺激!我如何将行插入到该表中?
每请求时,这里是表的定义:
CREATE TABLE `google_pla_plaproducts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_code` varchar(55) CHARACTER SET utf8 NOT NULL,
`min_bid` decimal(20,4) NOT NULL,
`current_bid` decimal(20,4) NOT NULL,
`max_bid` decimal(20,4) NOT NULL,
`creation_date` datetime(6),
`last_update` datetime(6) DEFAULT NULL,
`status_change` datetime(6) DEFAULT NULL,
`starting_bid` decimal(20,4) NOT NULL,
`adgroup_id` int(11) NOT NULL,
`status_id` int(11) NOT NULL,
`product_price` decimal(20,4) NOT NULL,
PRIMARY KEY (`id`,`product_code`,`adgroup_id`),
KEY `google_p_adgroup_id_3b7c9d4ecddd04ba_fk_google_pla_plaadgroup_id` (`adgroup_id`),
KEY `google_pla_plaprod_status_id_2f8113a5ef0dd021_fk_globs_status_id` (`status_id`),
KEY `idx_prod_code` (`product_code`),
CONSTRAINT `google_p_adgroup_id_3b7c9d4ecddd04ba_fk_google_pla_plaadgroup_id` FOREIGN KEY (`adgroup_id`) REFERENCES `google_pla_plaadgroup` (`id`),
CONSTRAINT `google_pla_plaprod_status_id_2f8113a5ef0dd021_fk_globs_status_id` FOREIGN KEY (`status_id`) REFERENCES `globs_status` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=88949 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
您可以添加工作台产生的表的SQL定义吗? –
还值得注意的是,该表实际上包含该字段的空值! – dengar81
可能会添加'models.DateTimeField(default = None,...)' – JulienD