MySql中把一个表的数据插入到另一个表中的实现代码

在MySQL数据库中,将一个表的数据插入到另一个表是常见的操作,尤其在数据迁移、备份或整合的过程中。本文将详细介绍如何实现这一功能,并提供不同情况下的SQL语句示例。 最基础的方法是当两表结构完全一致时,可以使用以下SQL语句一次性将所有数据从源表迁移到目标表: ```sql INSERT INTO 目标表 SELECT * FROM 来源表; ``` 例如,如果你有两个表`phpcms_c_disease`和`demo`,并且它们的字段完全相同,你可以使用: ```sql INSERT INTO nnd.demo SELECT * FROM ahjk.phpcms_c_disease; ``` 如果你只需要导入源表中的特定字段,可以指定这些字段,但前提条件是目标表中必须存在相应的字段: ```sql INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表; ``` 比如,只导入`content`和`partid`字段: ```sql INSERT INTO nnd.demo (content, parid) SELECT content, partid FROM ahjk.phpcms_c_disease; ``` 如果希望只插入目标表中不存在的数据,可以使用`NOT EXISTS`子句配合`WHERE`条件: ```sql INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表 WHERE NOT EXISTS (SELECT * FROM 目标表 WHERE 目标表.比较字段 = 来源表.比较字段); ``` 例如,确保`id`字段唯一,避免重复插入: ```sql INSERT INTO nnd.demo (content, parid) SELECT content, partid FROM ahjk.phpcms_c_disease WHERE NOT EXISTS (SELECT * FROM nnd.demo WHERE nnd.demo.contentid = ahjk.phpcms_c_disease.contentid); ``` 在实际编程中,例如PHP,你可以构建这样的SQL语句,然后执行。但在示例代码中,看到的是使用PHP的`mysql_*`函数,这些函数已经被废弃,推荐使用`mysqli`或`PDO`扩展来处理MySQL数据库操作,以提高安全性并支持预处理语句,防止SQL注入。 使用`mysqli`的示例: ```php <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname1 = "nnd"; $dbname2 = "ahjk"; // 创建连接 $conn1 = new mysqli($servername, $username, $password, $dbname1); $conn2 = new mysqli($servername, $username, $password, $dbname2); // 检查连接 if ($conn1->connect_error || $conn2->connect_error) { die("Connection failed: " . $conn1->connect_error . ", " . $conn2->connect_error); } // 设置字符集 $conn1->set_charset("utf8"); $conn2->set_charset("utf8"); // 查询语句 $sql = "SELECT content, partid FROM phpcms_c_disease ORDER BY contentid DESC LIMIT 10"; $result = $conn2->query($sql); // 构建插入语句 $sql1 = "INSERT INTO nnd.demo (content, parid) VALUES "; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $sql1 .= "('" . $row["content"] . "', '" . $row["partid"] . "'),"; } } $sql1 = rtrim($sql1, ',') . ";"; $conn1->query($sql1); $conn1->close(); $conn2->close(); ?> ``` 请注意,上述PHP代码示例中没有进行任何错误处理和参数转义,实际应用中应添加适当的错误处理和使用预处理语句以确保数据安全。同时,尽量避免在循环中构建SQL语句,因为这可能导致内存问题,尤其是处理大量数据时。最佳做法是使用`BULK INSERT`或`INSERT...SELECT`语句,直接在SQL层面完成数据迁移。




















- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 城市配网自动化及其配网规划的应用分析.docx
- 基于单片机的数字温控计.doc
- 《Windows-XP-Office-2003实用教程》第5章演示文稿软.ppt
- “互联网+”时代-企业的大数据思维与变革.pptx
- 关于计算机科学与技术未来发展趋势的相关探讨.docx
- 大数据解读双11.docx
- 旅游景区的网络营销.doc
- 本科《模式识别与计算机视觉》课程设计
- 对计算机云存储中数据迁移的研究.docx
- 中职计算机专业校企共建生产型实训基地模式研究.docx
- 基于网站制作的Web前端开发技术与优化.docx
- 大数据环境下的高校图书馆服务研究.docx
- 论物联网在物流工程管理中的运用.docx
- 数控技术与网络技术的结合应用.docx
- 全球化背景下的制造业生产调度体系探讨-系统集成.docx
- 基于云计算智能电网的能源监控管理分析及发展研究.docx



- 1
- 2
前往页