Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django IntegrityError:无默认值_Python_Mysql_Django_Django Orm - Fatal编程技术网

Python Django IntegrityError:无默认值

Python Django IntegrityError:无默认值,python,mysql,django,django-orm,Python,Mysql,Django,Django Orm,为了将数据从一个表迁移到另一个表,我需要运行更长的SQL查询。直到本周我迁移到Django 1.9.2和Python 3.5时,它一直运行良好 问题是该表的字段“last_update”默认为空。表定义是 last_update = models.DateTimeField("last updated",null=True, auto_now_add=False, auto_now=True) 我还检查了MySQL Workbench,表确实设置为允许该字段为NULL,默认值为NULL 查询在

为了将数据从一个表迁移到另一个表,我需要运行更长的SQL查询。直到本周我迁移到Django 1.9.2和Python 3.5时,它一直运行良好

问题是该表的字段“last_update”默认为空。表定义是

last_update = models.DateTimeField("last updated",null=True, auto_now_add=False, auto_now=True)
我还检查了MySQL Workbench,表确实设置为允许该字段为NULL,默认值为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;

updated=models.datetime字段(默认值=None,auto\u now=True,auto\u now\u add=False)

这应该行得通。
我以前用过这个,它对我来说很好。

我最后修改了几次表。我没有尝试Rohit的建议,因为默认值=无。在使用多个DB迁移后,它再次开始工作。

您可以添加workbench生成的表的SQL定义吗?还值得注意的是,该表实际上包含该字段的空值!可能添加
models.DateTimeField(默认值=None,…)
尝试删除该应用程序中的django迁移文件,然后再次使用python manage.py makemigrations->migrate。@Aison我确实在迁移方面玩了一段时间。最终才刚刚开始工作。您不需要
auto\u now
auto\u now\u add
。来自:“选项auto_now_add、auto_now和default是互斥的。这些选项的任何组合都会导致错误。”@Rohit Chopra:不,不是这样。它不知怎么又起作用了。也许在玩了迁移文件之后。。。