注意,这是一个衍生问题:
在产生Django makemigrations migrate 执行成功但不创建数据库中不创建表的问题后,我想要找到MySQL 数据库中有一张 django_migrations 表, (这张表里面有创建表的记录),删除对应的数据表记录,来重新创建我django应用所需要的数据表。
执行delete from django_migrations where app='yourappname';语句时候,产生的报错。
问题描述:
执行删除mySQL数据表语句时,出现的报错。
0 | 2 | 08:42:49 | delete from django_migrations where app='polls' | Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. | 0.000 sec |
分析原因:
这是因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令。
解决方法:
一,执行show variables like 'SQL_SAFE_UPDATES';这一句sql命令,查看SQL_SAFE_UPDATES的开关状态。如下图:
二,执行 SET SQL_SAFE_UPDATES = 0; 或者 SET SQL_SAFE_UPDATES = false; 命令,修改SQL_SAFE_UPDATES的值。如下图:
三,重新执行我们的删除语句,如图下,然后成功。
四:如此,我们重新进行数据迁移,看mysql数据库中,是否出现我们的polls表。
如图,mysql中重新出现polls表。