- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下 CSV 文件:
child_fname,child_sname,child_dob,child_gender,guardian_phone,child_activities
Jack,Horner,07/02/1999,M,0777-1863036,Art
Bill,Flowerpot,13/11/2002,M,0777-8302987,Football
Ben,Flowerpot,13/11/2002,M,0777-8302987,Football
Bart,Simpson,26/10/1999,M,0777-9384756,"Football,Art"
Lisa,Simpson,04/05/2004,F,0777-9384756,Art
Jemima,Puddleduck,16/07/2005,F,0777-4938756,"Art,IT"
Angelica,Pickles,29/03/2003,F,0777-2947856,Football
Eric,Cartman,12/04/1999,M,0770-2947104,IT
Stan,Marsh,16/08/1999,M,0770-2947104,IT
Kyle,Broflovski,30/05/1999,M,0770-2947104,IT
Kenny,McCormick,27/11/1999,M,0770-2947104,IT
Florence,Roundabout,05/05/2004,F,0757-3243137,"Art,IT"
Dennis,Menace,14/02/1999,M,0784-1836412,"Football,IT"
Minnie,Minx,31/08/2001,F,0773-4836741,"Football,IT,Art"
Miracle,Cure,24/04/2002,F,0776-1846374,Art
Beatrice,Menace,04/05/2005,F,0784-1836412,Art
Robin,Hood,10/07/2000,M,0779-3857344,"Football,IT"
Marian,Maid,26/09/2002,F,0779-3857344,Football
我希望将其加载到名为 Child
的 MySQL 数据库中,但是我不想插入仅用于在另一个数据库中查找外键的 guardian_phone
table 。例如
LOAD DATA INFILE 'example.csv'
INTO TABLE `Child`
IGNORE 1 LINES
FIELDS
TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\n'
(child_fname,child_sname,child_dob,child_gender,@guardian_phone,@child_activities)
SET guardian_id = (SELECT guardian_id FROM `Guardian` WHERE guardian_phone = @guardian_phone);
这很棒,但我也不想插入 child_activities
。我有另一个名为 Activity
的表,其中包含这些事件,如下所示:
activity_id | activity_name
1 Art
2 Football
3 IT
我有另一个名为 ActivityRegister
的表,我想在加载此字段的同时填充该表,它由两列 activity_id
和 child_id
.
我想做的是在将此数据加载到 Child
的同时,按 ,
分割 @child_activities
中的信息> (如有必要,可以将 CSV 输出更改为更方便的内容)并创建一个或多个字段,插入新生成的 child_id
以及通过执行 SELECT 找到的
(注意:需要首先拆分 activity_id
Activity_id FROM Activity WHERE Activity_name = @child_activities@child_activities
列以获得单独的值)
这可能吗?我宁愿一次性完成此操作,而不是进行多次传递,因为所有必需的信息都在那里。
最佳答案
您可以评估的一个选项是这样的,我更改了guardian_phone
列以方便编写一个小脚本:
example.csv:
+-------------+-------------+------------+--------------+-------------+------------------+
| child_fname | child_sname | child_dob | child_gender | guardian_id | child_activities |
+-------------+-------------+------------+--------------+-------------+------------------+
| Jack | Horner | 07/02/1999 | M | 1 | Art |
| Bill | Flowerpot | 13/11/2002 | M | 2 | Football |
| Ben | Flowerpot | 13/11/2002 | M | 3 | Football |
| Bart | Simpson | 26/10/1999 | M | 4 | "Football,Art" |
| Lisa | Simpson | 04/05/2004 | F | 5 | Art |
| Jemima | Puddleduck | 16/07/2005 | F | 6 | "Art,IT" |
| Angelica | Pickles | 29/03/2003 | F | 7 | Football |
| Eric | Cartman | 12/04/1999 | M | 8 | IT |
| Stan | Marsh | 16/08/1999 | M | 9 | IT |
| Kyle | Broflovski | 30/05/1999 | M | 10 | IT |
| Kenny | McCormick | 27/11/1999 | M | 11 | IT |
| Florence | Roundabout | 05/05/2004 | F | 12 | "Art,IT" |
| Dennis | Menace | 14/02/1999 | M | 13 | "Football,IT" |
| Minnie | Minx | 31/08/2001 | F | 14 | "Football,IT,Art"|
| Miracle | Cure | 24/04/2002 | F | 15 | Art |
| Beatrice | Menace | 04/05/2005 | F | 16 | Art |
| Robin | Hood | 10/07/2000 | M | 17 | "Football,IT" |
| Marian | Maid | 26/09/2002 | F | 18 | Football |
+-------------+-------------+------------+--------------+-------------+------------------+
/*Table structure for table `activity` */
DROP TABLE IF EXISTS `activity`;
CREATE TABLE `activity` (
`activity_id` INT(10) UNSIGNED NOT NULL,
`activity_name` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`activity_id`)
) ENGINE=INNODB;
/*Data for the table `activity` */
INSERT INTO `activity`(`activity_id`,`activity_name`)
VALUES
(1,'Art'),(2,'Football'),(3,'IT');
/*Table structure for table `activityregister` */
DROP TABLE IF EXISTS `activityregister`;
CREATE TABLE `activityregister` (
`activity_id` INT(10) UNSIGNED NOT NULL,
`child_id` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`activity_id`,`child_id`)
) ENGINE=INNODB;
/*Table structure for table `child` */
DROP TABLE IF EXISTS `child`;
CREATE TABLE `child` (
`child_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`child_fname` VARCHAR(50) DEFAULT NULL,
`child_sname` VARCHAR(50) DEFAULT NULL,
`child_dob` VARCHAR(10) DEFAULT NULL,
`child_gender` CHAR(1) DEFAULT NULL,
`guardian_id` INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`child_id`)
) ENGINE=INNODB;
/*Table structure for table `intermediate_child` */
DROP TABLE IF EXISTS `intermediate_child`;
CREATE TABLE `intermediate_child` (
`child_fname` VARCHAR(50) DEFAULT NULL,
`child_sname` VARCHAR(50) DEFAULT NULL,
`child_dob` VARCHAR(10) DEFAULT NULL,
`child_gender` CHAR(1) DEFAULT NULL,
`guardian_id` INT(10) UNSIGNED DEFAULT NULL,
`child_activities` VARCHAR(50) DEFAULT NULL
) ENGINE=INNODB;
/* Trigger structure for table `intermediate_child` */
DELIMITER $$
/*!50003 DROP TRIGGER*//*!50032 IF EXISTS */ /*!50003 `trg_ai_intermediate_child` */$$
CREATE TRIGGER `trg_ai_intermediate_child` AFTER INSERT ON `intermediate_child`
FOR EACH ROW
BEGIN
DECLARE `delimiter` CHAR(1) DEFAULT ',';
DECLARE `child_activities_length`, `_child_id`, `_activity_id` INT UNSIGNED DEFAULT 0;
DECLARE `index` INT UNSIGNED DEFAULT 1;
DECLARE `_activity_name` VARCHAR(50);
INSERT INTO `child` (`child_fname`, `child_sname`, `child_dob`, `child_gender`, `guardian_id`)
VALUES (new.`child_fname`, new.`child_sname`, new.`child_dob`, new.`child_gender`, new.`guardian_id`);
SET `_child_id` := LAST_INSERT_ID();
SET `child_activities_length` := `common_schema`.get_num_tokens(new.`child_activities`, `delimiter`);
IF (`child_activities_length` > 0) THEN
WHILE (`index` <= `child_activities_length`) DO
SET `_activity_name` := common_schema.split_token(new.`child_activities`, `delimiter`, `index`);
SET `_activity_id` := (SELECT `activity_id` FROM `activity` WHERE `activity_name` = `_activity_name`);
IF (`_activity_id` IS NOT NULL) THEN
INSERT INTO `activityregister` (`activity_id`, `child_id`) VALUES (`_activity_id`, `_child_id`);
END IF;
SET `index` := `index` + 1;
END WHILE;
END IF;
END$$
DELIMITER ;
LOAD DATA INFILE '/path/to/example.csv'
INTO TABLE `intermediate_child`
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(`child_fname`, `child_sname`, `child_dob`, `child_gender`, `guardian_id`, `child_activities`);
TRUNCATE TABLE `intermediate_child`;
为了方便处理所使用的字符串:common_schema
,具体功能:get_num_tokens
和 split_token
.
根据需要进行调整并更改您需要的一切,这只是一个可以评估的选项。
关于MySQL LOAD DATA INFILE 并填充另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062828/
我有一台 MySQL 服务器和一台 PostgreSQL 服务器。 需要从多个表中复制或重新插入一组数据 MySQL 流式传输/同步到 PostgreSQL 表。 这种复制可以基于时间(Sync)或事
如果两个表的 id 彼此相等,我尝试从一个表中获取数据。这是我使用的代码: SELECT id_to , email_to , name_to , status_to
我有一个 Excel 工作表。顶行对应于列名称,而连续的行每行代表一个条目。 如何将此 Excel 工作表转换为 SQL 表? 我使用的是 SQL Server 2005。 最佳答案 这取决于您使用哪
我想合并两个 Django 模型并创建一个模型。让我们假设我有第一个表表 A,其中包含一些列和数据。 Table A -------------- col1 col2 col3 col
我有两个表:table1,table2,如下所示 table1: id name 1 tamil 2 english 3 maths 4 science table2: p
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 1 年前。 Improve th
下面两个语句有什么区别? newTable = orginalTable 或 newTable.data(originalTable) 我怀疑 .data() 方法具有性能优势,因为它在标准 AX 中
我有一个表,我没有在其中显式定义主键,它并不是真正需要的功能......但是一位同事建议我添加一个列作为唯一主键以随着数据库的增长提高性能...... 谁能解释一下这是如何提高性能的? 没有使用索引(
如何将表“产品”中的产品记录与其不同表“图像”中的图像相关联? 我正在对产品 ID 使用自动增量。 我觉得不可能进行关联,因为产品 ID 是自动递增的,因此在插入期间不可用! 如何插入新产品,获取产品
我有一个 sql 表,其中包含关键字和出现次数,如下所示(尽管出现次数并不重要): ____________ dog | 3 | ____________ rat | 7 | ____
是否可以使用目标表中的LAST_INSERT_ID更新源表? INSERT INTO `target` SELECT `a`, `b` FROM `source` 目标表有一个自动增量键id,我想将其
我正在重建一个搜索查询,因为它在“我看到的”中变得多余,我想知道什么 (albums_artists, artists) ( ) does in join? is it for boosting pe
以下是我使用 mysqldump 备份数据库的开关: /usr/bin/mysqldump -u **** --password=**** --single-transaction --databas
我试图获取 MySQL 表中的所有行并将它们放入 HTML 表中: Exam ID Status Assigned Examiner
如何查询名为 photos 的表中的所有记录,并知道当前用户使用单个查询将哪些结果照片添加为书签? 这是我的表格: -- -- Table structure for table `photos` -
我的网站都在 InnoDB 表上运行,目前为止运行良好。现在我想知道在我的网站上实时发生了什么,所以我将每个页面浏览量(页面、引荐来源网址、IP、主机名等)存储在 InnoDB 表中。每秒大约有 10
我在想我会为 mysql 准备两个表。一个用于存储登录信息,另一个用于存储送货地址。这是传统方式还是所有内容都存储在一张表中? 对于两个表...有没有办法自动将表 A 的列复制到表 B,以便我可以引用
我不是程序员,我从这个表格中阅读了很多关于如何解决我的问题的内容,但我的搜索效果不好 我有两张 table 表 1:成员 id*| name | surname -------------------
我知道如何在 ASP.NET 中显示真实表,例如 public ActionResult Index() { var s = db.StaffInfoDBSet.ToList(); r
我正在尝试运行以下查询: "insert into visits set source = 'http://google.com' and country = 'en' and ref = '1234
我是一名优秀的程序员,十分优秀!