【mysql外键级联更新删除】教程文章相关的互联网学习教程文章

mysql – 由于外键约束而无法删除现有的唯一键【代码】

我需要通过删除MySQL上的现有密钥来生成唯一键.我目前的版本是MySQL 5.7 我使用以下查询删除了现有密钥,DROP INDEX `uk_bookid_bookname` ON Books; 其中BookId是外键. 然后,我使用以下查询添加了新的唯一键,ALTER TABLE Books ADD UNIQUE uk_bookid_bookname (BookId, BookName);我收到以下错误,ERROR 1553 (HY000): Cannot drop index ‘uk_bookid_bookname’: needed in a foreign key constraint我需要删除现有密钥,然后添加...

在尝试删除MySQL中的任何这些记录之前,如何检查记录列表的外键引用?【代码】

有没有办法,当你有一个记录列表时,在你试图删除任何这些记录之前检查这些记录是否都有外键引用? 例如,如果我有一份借款人名单和一份书籍清单,如果他还有借书,你就不应该从系统中删除借款人. (我的实际系统比那复杂得多 – 更多的表格.) 我想删除任何有借书的借款人的删除选项(在该示例中). 如果我尝试删除带有外键引用的记录,我会收到一个错误:Database access failed: Cannot delete or update a parent row: a foreign key con...

mysql – Django – 在查询外键ID时避免连接?【代码】

假设我在Django中有一个简单的博客条目模型:class Entry(models.Model):author = models.ForeignKey(Author)topic = models.ForeignKey(Topic)entry = models.CharField(max_length=50, default='')现在说我想查询作者或主题,但完全排除特定主题.entry_list = Entry.objects.filter(Q(author=12)|Q(topic=123)).exclude(topic=666)很简单,但我发现这个原始SQL包含主题表上的连接,即使它不必使用:SELECT `blog_entry`.`id` FROM `...

使用MySQL Workbench在已编制索引的列上创建外键【代码】

我正在使用Workbench创建数据库模型并创建下表:CREATE TABLE IF NOT EXISTS `Database`.`table1` (`idtable1` INT NOT NULL ,`uniquecolumn` INT NOT NULL ,PRIMARY KEY (`idtable1`) ,UNIQUE INDEX `UniqueIndex` (`uniquecolumn` ASC) ) ENGINE = InnoDB它有一个主键,在我的第二列上有一个唯一键. 当我在它们上创建外键约束时,Workbench会自动添加两个索引:CREATE TABLE IF NOT EXISTS `Database`.`table1` (`idtable1` INT ...

MySQL外键级联删除不起作用,完全难倒【代码】

我已经阅读了很多其他线程,但我仍然感到难过.我创建了两个非常简单的表作为完整性检查,并且无法让它们执行级联删除,因此需要一些帮助.CREATE TABLE `test1` (`test1_ID` int(11) NOT NULL AUTO_INCREMENT,`test1_name` char(15) DEFAULT NULL,PRIMARY KEY (`test1_ID`),UNIQUE KEY `test1_ID_UNIQUE` (`test1_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `test2` (`test2_ID` int(11) NOT NULL AUTO_INCREMENT,`tes...

MySQL:破解外键实现?【代码】

用于在MySQL中定义外键的内联语法似乎没有做任何事情,而较长的CONSTRAINT语法似乎按预期工作.我很好奇为什么会这样. 我最近发现用于定义外键的内联语法(我认为它可以正常工作)不会对参照完整性进行任何实际检查. ON DELETE / UPDATE子句中定义的内容无关紧要.我当然用InnoDB尝试了这个,因为我知道MyISAM不支持外键检查. 请看一下示例/小提琴,你会明白我的意思. 内联语法 这是根据我多年来使用的文档定义外键的正确方法.-- Create a...

mysql – 多个表中的相同外键

我已经在SO上看过帖子,并通过谷歌声明,使用Mysql你不能拥有多个同名的外键.我的问题是如何从多个其他表中的一个表中引用相同的列.在我的情况下,我有一个包含FAM_ID的FAMILY表.我希望这是我的DOCUMENTS和CONTACT表中的外键,因为那些行与FAM_ID有关系.因此,如果我理解了我正确阅读的内容,我需要在DOCUMENTS和CONTACT中命名不同的名称(而不是FAM_ID),以便将它们映射为FAMILY表中FAM_ID的外键.我只是不理解某事或这是我唯一的选择吗?这...

列出MySQL表外键的高效方法?【代码】

是否有一种高效的方法来获取分配给MySQL表的外键列表? 使用查询信息模式SELECT`column_name`, `referenced_table_schema` AS foreign_db, `referenced_table_name` AS foreign_table, `referenced_column_name` AS foreign_column FROM`information_schema`.`KEY_COLUMN_USAGE` WHERE`constraint_schema` = SCHEMA() AND`table_name` = 'your-table-name-here' AND`referenced_column_name` IS NOT NULL ORDER BY`column_name`;...

java – 在MySQL集群上使用JPA / Hibernate进行外键约束检查

我刚刚被告知MySQL集群(使用NDB引擎)不支持跨集群的外键约束. 使用JPA / Hibernate,如果数据库没有强制执行,你将如何强制引用完整性? 一种选择是调用数据库以验证数据,然后如果有效则执行插入/更新/删除操作.由于存在性能影响,我有点不愿意采用这种方法. 问题: >如果数据库中不支持外键检查,在使用带有JPA / Hibernate的MySQL群集时,通常如何强制执行参照完整性检查.>如果手动检查是唯一的选择,我是否可以通过一次数据库完成手动...

mysql – Doctrine2 updateSchema与外键冲突【代码】

updateSchema运行良好的空数据库,但第二次我收到以下MySQL错误:SQLSTATE[HY000]: General error: 1025 Error on rename of'./mydatabase/#sql-7f5_2b' to'./mydatabase/mytable' (errno: 150)根据快速搜索,此错误发生在外部约束违规上.正确的方法是在更改表时禁用外键检查的学说. 我可以做些什么(除了补丁Dcotrine)? 我还指定了更多:'engine' => 'myisam',…在connectionOptions中,但它被忽略了. 编辑: 当我从包含对mytable的引...

MySQL外键查询返回空【代码】

我有三张桌子 我们来一个demo_organization;+--------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | org_name | varchar(100) | NO | ...

mysql – 为什么我可以为不存在的表创建外键约束?【代码】

我正在玩外键约束,并意识到我可以为不存在的表添加约束.我也可以插入记录,没问题.mysql> show tables; Empty set (0.00 sec)mysql> create table t(id int, FOREIGN KEY (id) REFERENCES x(id)); Query OK, 0 rows affected (0.00 sec)mysql> insert into t values (1); Query OK, 1 row affected (0.00 sec)我想知道我是否不太了解外键约束.解决方法:我认为默认存储设置为MyIsam,而不是InnoDb,表创建为MyIsam,而不是Innodb.外键仅...

为什么Mysql重命名我的外键?【代码】

为什么Mysql / InnoDB似乎重命名我创建的一些外键? 例如mysql> alter table JOB_LISTENER add foreign key FK_JOBS (job_id) REFERENCES job(id); mysql> mysql> show create table JOB_LISTENER; snip> .... mysql> CONSTRAINT `JOB_LISTENER_ibfk_4` FOREIGN KEY (job_id) REFERENCES job (id) snip> ....它将我创建的名为FK_JOBS的外键重命名为JOB_LISTENER_ibfk_4 – 为什么会这样做? 非常感谢, 肖恩解决方法:您必须使用CON...

如何使用mysql在sails中定义外键关系【代码】

我对帆很了解,所有与ORM有关的文档都是尽可能基本的,所以我很难理解如何在我的模型中建立关系.这是我的桌子和型号:http://pastebin.com/yt8jFTkk 现在,我想要做的是:AccountApplication.findOne({token: 'someTokenHere', application.type: 'foo', application.serviceProvider: 'bar' }).populate('application') .populate('account').exec(...)...我会满足于此并手动检查预期的应用程序类型和服务提供程序,因为令牌重叠似乎很...

mySQL重复外键【代码】

我是MySQL的初学者,我正在尝试建立一个供个人使用的数据库.我试图给多个’Werknemer’提供相同的’Jobfunctie’. 例如:船员(werknemer)(0100)是’arbeider’.第二名船员(werknemer)(0101)也是’arbeider’.CREATE TABLE Werknemer (personeelsnummer int(4) not NULL,voornaam varchar(10) not NULL,achternaam varchar(10) not NULL,adres varchar(30) not NULL,telefoon varchar(10) not NULL,winkelnummer int(4) not NULL,pri...