mysql-alter table modify列无法删除行

mysql-alter table modify列无法删除行,mysql,mariadb,Mysql,Mariadb,因此,我尝试运行以下命令: ALTER TABLE user MODIFY COLUMN email VARCHAR(100) UNIQUE; 但它给了我这个错误 Cannot delete rows from table which is parent in a foreign key constraint 'draft_map_ibfk_1' of table 'draft_map' 表中没有重复项,因此不应该删除任何内容。电子邮件列当前是一个文本,这就是问题的原因吗?临时禁用外部检查:

因此,我尝试运行以下命令:

ALTER TABLE user MODIFY COLUMN email VARCHAR(100) UNIQUE;
但它给了我这个错误

Cannot delete rows from table which is parent in a foreign key constraint 'draft_map_ibfk_1' of table 'draft_map'

表中没有重复项,因此不应该删除任何内容。电子邮件列当前是一个
文本
,这就是问题的原因吗?

临时禁用外部检查:

SET foreign_key_checks = 0;
要启用它,请使用:

SET foreign_key_checks = 1;

您有一个依赖于此行的外键。@jhpratt是的,我知道,但我没有删除任何内容,
ALTER TABLE
删除内容并重新创建它还是什么?哎呀,误读了原始查询
altertable
分别重新创建每一行,因此从某种意义上说,是的,它会删除它(尽管是暂时的)。@jhpratt啊,我明白了,还有什么方法可以解决这个问题吗?只是好奇万一我需要修改一个实时数据库。或者我需要将其脱机并进行修改?我不知道有任何解决方法。我个人只需要创建一个副本,然后(通过删除外键)处理它。然后你可以在适当的时候切换对DBs的依赖。然后完整性就会被破坏?@RickJames如果我锁定数据库/(使其离线)并应用更改,应该没问题,对吧?