- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表,描述对 end_customers
表所做的更改。当某人发生更改并且 end_customer
时,我们会在 end_customers
表中创建一个新行,并向 end_customer_history
表添加一行,其中 end_customer_parent_id
> 是旧 end_customer
的 ID,end_customer_child_id
是新 end_customer
的 ID。
最终客户表:
CREATE TABLE `end_customers` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`reference_person` varchar(255) DEFAULT NULL,
`phone_number` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`social_security_number` varchar(255) DEFAULT NULL,
`comment` longtext,
`token` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101107 DEFAULT CHARSET=utf8;
最终客户历史记录表:
CREATE TABLE `end_customer_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`end_customer_parent_id` bigint(20) NOT NULL,
`end_customer_child_id` bigint(20) NOT NULL,
`user_id` bigint(20) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_end_customer_parent` (`end_customer_parent_id`),
KEY `FK_end_customer_child` (`end_customer_child_id`),
KEY `FK_user` (`user_id`),
CONSTRAINT `end_customer_history_old_ibfk_1` FOREIGN KEY (`end_customer_parent_id`) REFERENCES `end_customers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `end_customer_history_old_ibfk_2` FOREIGN KEY (`end_customer_child_id`) REFERENCES `end_customers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `end_customer_history_old_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8;
我们现在正在重构架构,以便对 end_customers
表所做的更改直接编辑行而不是创建新行,并将旧数据的副本放入 end_customer_history_new
code> 表与 end_customers
具有相同的架构。
我需要将所有旧数据迁移到这个新表。因此,对于我拥有的每个 end_customer
,我需要检查它在 end_customer_history
中是否有一个条目作为 end_customer_child_id
(它已被修改),并且然后检查该条目父项是否也作为子项存在于 end_customer_history
中,然后检查该条目父项是否也作为子项存在于 end_customer_history
中,依此类推,直到出现不再有行。
如何在一个迁移 SQL 脚本中执行此操作?
最佳答案
与 Oracle 不同,MySQL 不提供递归查询父子层次结构的功能。如果您事先知道级别,则可以编写自连接查询(或内部查询)。如果没有,您必须执行单个查询并处理应用程序或存储过程中的递归性。
Here如果您已经知道级别,则查询父子层次结构的示例是 here这是一个如何在 Oracle 中执行此操作的示例(供您引用)。
关于mysql - 使用父 ID 将表连接到自身,直到没有更多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366446/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!