vol*_*gas 2 python mysql sql django mariadb
这是我的模型:
class Subscriber(models.Model):
...
tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE, null=True)
...
Run Code Online (Sandbox Code Playgroud)
这是生成的 SQL,根据sqlmigrate(以及对数据库的手动检查):
ALTER TABLE `myapp_subscriber` ADD CONSTRAINT `myapp_subscriber_tenant_id_b52815ee_fk_myapp_tenant_id` FOREIGN KEY (`tenant_id`) REFERENCES `myapp_tenant` (`id`);
Run Code Online (Sandbox Code Playgroud)
我期待像这样:
CREATE TABLE child (
id INT,
parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)
随着ON DELETE CASCADE.
MySql(MariaDB实际上)在我删除时抱怨:
SQL Error (1451): Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为没有 ON DELETE CASCADE条款。
为什么Django 2.1.5不遵守ON DELETE CASCADE条款?
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |