php - MySQL 存储过程 [复制表 1 -> 表 2]

标签 php mysql

除了简单的 CRUD 操作之外,我对 MySQL/SQL 的了解很基础。

如果我必须使用存储过程将某些属性(不按特定顺序)移动到另一个表,该怎么办?

这些是下表。我想从第一张 table 移到第二张 table 。

正如您所看到的,某些列的数据类型大小不同。

CREATE TABLE IF NOT EXISTS `source_cdr` (
  `callstart` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `src` varchar(80) NOT NULL DEFAULT '',
  `dst` varchar(80) NOT NULL DEFAULT '',
  `accountcode` varchar(50) NOT NULL,
  `uniqueid` varchar(100) NOT NULL,
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `callanswer` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `callend` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `disposition` varchar(50) NOT NULL,
  `cdr_id` int(11) unsigned NOT NULL DEFAULT '0',
  `pin_code` varchar(4) NOT NULL,
  `provider` int(11) NOT NULL,
  PRIMARY KEY (`ID`),
  KEY `calldate_idx` (`callstart`) USING BTREE,
  KEY `idx_acc_code_calldate` (`accountcode`,`callstart`) USING BTREE,
  KEY `uniqueid` (`uniqueid`),
  KEY `cdr_id` (`cdr_id`),
  KEY `idx_uniqueid_cdr_id` (`uniqueid`,`cdr_id`)
) ENGINE=MyISAM;

--

CREATE TABLE IF NOT EXISTS `destination_cdr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `calldate` datetime NOT NULL,
  `source` varchar(80) NOT NULL,
  `destination` varchar(80) NOT NULL,
  `account_code` varchar(30) DEFAULT NULL,
  `pincode` varchar(45) NOT NULL,
  `duration_call` bigint(20) NOT NULL DEFAULT '0',
  `duration_talk` bigint(20) NOT NULL,
  `disposition` varchar(255) NOT NULL,
  `clid` varchar(80) DEFAULT NULL,
  `cdr_id` bigint(20) DEFAULT NULL,
  `vxcdr_id` bigint(20) DEFAULT NULL,
  `provider` int(11) NOT NULL DEFAULT '0'
  PRIMARY KEY (`id`)
) ENGINE=MyISAM;

编辑 1

行的示例

    ('2012-03-18 20:54:49', '5796', '0761100866', '103f0124ad510516f33cab132c0a695b', 'call-F1884808-6753-2F10-181C-3A@10.217.164.33', 308006367, '2012-03-18 20:55:05', '2012-03-18 20:55:51', '200 OK', 2, '', 0),

谢谢

最佳答案

您可以使用MySQL: INSERT ... SELECT Syntax将数据从一个表复制到另一个表。
确定两者的共同字段并复制相同的字段。

示例:

INSERT INTO TABLE2( COL1, COLx, ... ) SELECT colM, colY FROM TABLE1;

如果列大小不匹配,则会发生数据截断,您无法克服该问题,只能重新定义目标表列。

关于php - MySQL 存储过程 [复制表 1 -> 表 2],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658605/

相关文章:

php - 有没有办法从数据库返回用户测试中未正确完成的问题和答案?

c# - DbCommand 以 MySQL 不接受的日期格式生成 SQL

php - 将数组与外部数组组合

php - 使用 PDO 和 OOP 的 MySQL 查询问题

php - 按值 zset 查找 redis 键 - laravel

php - 错误 : request class does not exist in laravel 5. 5

php - 在 php 中滚动动态 <tbody> 时固定 html 表 <thead>

php - 为什么不删帖子呢?

php - 使用引号将 PHP 变量传递给 javascript 函数

mysql - 如何在 MySql 中检查数据字典的大小