【Mysql外键约束】教程文章相关的互联网学习教程文章

mysql – 我可以在两个不同的表中使用相同的外键约束吗?【代码】

我正在尝试创建一个工作数据库.我有两种不同类型的用户:内部和外部.每种类型都有不同的属性,所以我只为它们创建了两个单独的表.在我的内部表中,我有以下字段:f_name VARCHAR(32), l_name VARCHAR(32), empl_status_id INT, admin_grp_id INT, reliab_status_id INT, supv_id INT我的外部表有以下内容:f_name VARCHAR(32), l_name VARCHAR(32), email VARCHAR(32), phone VARCHAR(20), org_id INT, supv_id INT我意识到我可能创建...

MySQL InnoDB是否总是需要每个外键约束的索引?

我正在使用phpMyAdmin.为了使用InnoDB设置外键约束(在Structure选项卡上的“Relation View”链接下),我似乎需要为要添加约束的字段添加索引.这显然会影响表上插入/更新的性能,特别是如果我想添加几个约束.是否可以在InnoDB中指定外键约束或关系完整性而无需为所需字段创建索引? 非常感谢JS,伦敦解决方法:从MySQL reference manual:InnoDB requires indexes on foreignkeys and referenced keys so thatforeign key checks can be...

使用外键约束删除Mysql表列

如何在mysql中删除所有相关外键和其他约束的列?解决方法:MySQL上的AFAIK您必须在删除列之前手动删除约束. 仅当您使用该子句创建约束时,ON DELETE CASCADE子句才会影响表,并且只需要删除与该表关联的外部行.

mysql – 获取错误 – 无法添加或更新子行:django中的旧数据库的外键约束失败【代码】

我最近从原始php移植到django并且必须将我的遗留数据库合并到其中.我使用了inspectdb命令从数据库中构建模型,一切正常. 最近我决定添加喜欢的功能并设置为收藏夹.所以我添加了一个新表,如下所示.class SongCollection(models.Model):song_name = models.TextField()song_type = models.CharField(max_length=765)likes = models.IntegerField(default=0)class Meta:db_table = u'songcollection'class likeSong(models.Model):user...

MySQL ERROR 1215(HY000):无法添加外键约束【代码】

我到处都看过这个错误并看到了很多例子,但我仍然无法弄清楚我的脚本有什么问题.我很抱歉,如果这是一个常见的问题,但到目前为止,搜索它并没有帮助我.这是脚本:CREATE DATABASE IF NOT EXISTS ventas; USE ventasCREATE TABLE TIENDAS ( nif varchar(10) not null, nombre varchar(20), direccion varchar(20), poblacion varchar(20), provincia varchar(20) check (provincia = upper(provincia)), codpostal int(5), PRIMARY KEY...

mysql – 无法使用Laravel 5迁移添加外键约束【代码】

我正在尝试为订单表创建迁移.此表具有两个表的外键约束:employees和clients. 订单表的架构:Schema::create('orders', function (Blueprint $table) {$table->increments('id');$table->integer('client_id')->unsigned();$table->foreign('client_id')->references('id')->on('clients');$table->integer('employee_id')->unsigned();$table->foreign('employee_id')->references('id')->on('employees');$table->text('descript...

无法删除或更新父行:外键约束失败 – MYSQL【代码】

我在尝试从数据库中删除用户时遇到此错误,我知道这样做是因为我尝试删除的用户是约会表中的外键,但我不知道如何更正或哪里出错了不确定它是否会改变,只是因为我使用laravel创建表 用户表CREATE TABLE `users` (`id` int(10) UNSIGNED NOT NULL,`firstname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,`surname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,`address` varchar(191) COLLATE utf8mb4_unicode_ci NOT ...

mysql – 外键约束的不一致荣誉【代码】

我们有以下架构(为便于阅读而简化):CREATE TABLE `group` (`id` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `device` (`id` int(11) NOT NULL AUTO_INCREMENT,`group_id` int(11) NOT NULL,PRIMARY KEY (`id`),KEY `group_id` (`group_id`),CONSTRAINT `device_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;我...

java – com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法添加或更新子行:外键约束失败【代码】

当我想要插入一些数据时,我经常会出错 项目类@Entity @NamedQueries({@NamedQuery(name = "Project.findAll",query = "SELECT p FROM Project p"),@NamedQuery(name = "Project.findByTitle",query = "SELECT p FROM Project p WHERE p.title = :title") }) public class Project implements Serializable{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private int projectId;@Columnprivate String title;@Columnpriva...

mysql – 基于附加列实施外键约束【代码】

我有以下业务规则: >帐户可以拥有零个或多个许可证.>每个许可证都有一个独特的指南.>每个许可证都预先分配给给定的帐户.>所有安装都属于给定帐户.>所有商业安装都需要许可证.>没有两个commercial_installations可以使用相同的许可证.>可以删除commercial_installation,然后可以在新的commercial_installation上使用许可证.> commercial_installation只能使用已分配给安装帐户的许可证. 我该如何执行最后一条规则? commercial_ins...

mysql – SHOW CREATE TABLE输出中缺少外键约束【代码】

我发现SHOW CREATE TABLE没有像我期望的那样显示外键约束. 为了演示,这是MySQL manual的一个例子:CREATE TABLE parent (id INT NOT NULL,PRIMARY KEY (id) ) ENGINE=INNODB; 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;mysql> SHOW CREATE TABLE child\G *************************** 1. row *********************...

php – 外键约束失败,因为insert语句尚未提交(MySQL)【代码】

我有一个使用Doctrine 2的PHP脚本,它主要执行以下操作:$entityManager->transactional(function($em) {$foreignObject = new DoctrineEntities\ForeignTable();$em->persist($foreignObject);$em->flush();$aObject = new DoctrineEntities\A();$aObject->ForeignID = $foreignObject->ID;$em->persist($aObject);$em->flush(); });我收到了完整性约束违规:a foreign key constraint fails (dbName.A, CONSTRAINT A_ForeignID FO...

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我需要删除现有密钥,然后添加...

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

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

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.外键仅...