草庐IT

python - Django级联删除反向外键

Django展示了如何在其文档中使用外键设置或覆盖级联删除。model=models.ForeignKey(MyModel,null=True,on_delete=models.SET_NULL)但是,如果我们想要相反的效果怎么办?如果我们希望删除fk模型导致删除此模型怎么办?谢谢 最佳答案 有一个非常微妙的实现点,我想我应该添加到这个讨论中。假设我们有两个模型,其中一个通过外键引用另一个,如下所示:classA(models.Model):x=models.IntegerField()classB(models.Model):a=

phpMyAdmin 外键下拉字段值

我正在使用phpmyadmin(php&mysql),但在使用外键链接表时遇到了很多麻烦。我得到字段countyId(这是外键)的负值。但是,它可以很好地链接到我的其他表,并且可以很好地级联。当我去添加数据时,会有一个用于CountyId的下拉框,值看起来像这样,-11-这是我的修改声明:ALTERTABLEBaroniesADDFOREIGNKEY(CountyId)REFERENCESCounties(CountyId)ONDELETECASCADE 最佳答案 正如我在ServerFault上解释的那样:它不是负数,phpMYA

MySQL外键ON DELETE SET NULL检查数据类型错误

我正在开发一个规范化的数据库,为了安全起见,我想使用外键。我的数据库:CREATETABLE`names`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(250)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`name`(`name`),KEY`name_2`(`name`))ENGINE=InnoDBDEFAULTCHARSET=latin1AUTO_INCREMENT=1;CREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENT,`name_id`int(11)DEF

MySQL删除外键错误152

我正在尝试使用以下方法删除一些外键:ALTERTABLE`table`DROPFOREIGNKEY`fk_table_users1`,DROPFOREIGNKEY`fk_table_accounts1`,DROPFOREIGNKEY`fk_table_data1`;但它返回错误:Erroronrenameof'./db/table'to'./db/#sql2-179c-288289'(errno:152)我已经运行了SHOWENGINEINNODBSTATUS,上面写着:12072512:38:37Errorindroppingofaforeignkeyconstraintoftabl

mysql 一个表中的多个外键指向同一个主键

我有一个user表,其中userID作为主键。我有另一个名为Friends的表。在Friends表中,我有两个用户作为friend,由UserID和FrndID列表示,其中UserID和FrndID应该是user表中的userID。我想强制执行数据完整性。我可以使用这样的东西吗?ADDCONSTRAINT`ufd_users_fk`FOREIGNKEY(`userId`,`friendId`)REFERENCES`users`(`userId`,`userId`)ONDELETECASCADEONUPDATECASCADE;我想知道REFERENCESusers(userId,user

mysql - 自然键 vs 代理键 innodb 外键

一个问题:我有2张table:ProductidINTnameVARCHAR(64)somethingTEXTelseINTentirelyBOOL和IngredientidINTnameVARCHAR(64)descriptionTEXT现在我也有一个链接表Products_Ingredientsproduct_idINTingredient_idINT对于我的多对多关系。现在产品和成分都将拥有唯一的名称。所以我可以使用名称作为自然键......但这会是个好主意吗?假设我有一个产品:PaintThinnerSupreme含成分:丁基硝基四环素将这些名称用作链接表中的复合键是个好主意吗

mysql - 这张表的外键约束有什么问题?

MySQL5.1.59抛出这个创建表的错误:CREATETABLEIFNOTEXISTS`genre`(`id`INTUNSIGNEDNOTNULLAUTO_INCREMENT,`abv`CHAR(3)CHARACTERSET'latin1'COLLATE'latin1_bin'NULLDEFAULTNULL,`name`VARCHAR(80)NOTNULLDEFAULT'',`parent_id`INTNULLDEFAULTNULL,PRIMARYKEY(`id`),INDEX`fk_genre_genre1`(`parent_id`ASC),CONSTRAINT`fk_genre_

ruby-on-rails - rails迁移中的唯一外键

在迁移文件中,我使用以下语法添加外键。classCreatePreferencestrueendend但是:unique=>true不起作用。mysql>showindexesfrompreferences;+-------------+------------+---------------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+|Table|Non_unique|Ke

MySQL 找到无效的外键

我们有一个包含数百个表的数据库。使用外键的表使用INNODB。有时我们在开发、阶段和生产数据库之间传输数据(使用mysqldump的单个表)。mysqldump禁用所有外键检查以简化数据导入。因此,随着时间的推移,我们的一些非生产数据库最终会出现一些孤立的记录。我正要编写一个脚本来查找和检测整个MySQL数据库的任何无效(指向丢失记录的键)外键。我知道我可以编写一个查询来逐个检查每个表和fkey,但我认为可能已经有一个工具可以做到这一点。在编写这样的脚本之前,我会先检查一下是否已经有这样的脚本。用谷歌搜索了一下......令人惊讶的是我什么也没找到。 最佳答

mysql - 在 MySql 中删除未命名的外键

如果创建的外键没有名字,MySql会给它一个默认的。例如,对于表“Test”,外键将命名为“test_ibfk_1”。当我使用此名称在本地删除外键时,它就像一个魅力,但在开发服务器上它失败并显示errno:152。我知道这个名字是区分大小写的,但是无论是小写还是大写,结果都是一样的。我的问题:依赖默认名称来操作约束是否安全(至少在MySql中)?提前致谢! 最佳答案 您需要知道外键的名称。如果创建时没有名称,则会自动生成名称。您应该获得有关外键的信息。使用这些查询之一来获取外键名称-SELECTconstraint_nameFROM