积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
积木技术社区 » MySQL » 关于同一数据库两张表的同步问题。
打印 楼主:快乐每天 发表于 2011-01-10 23:03 [回复6次/有效5个,浏览496次]

关于同一数据库两张表的同步问题。 [精]

mysql数据库
table1中有字段ABCDE,table2中的ABC字段需要从table1中的AE导入,还要导入一个常量
我这样写:
insert table2(A,B,C) select A,1,E from table1 where ID not in (select ID from table2)
但插入的数据为0行,请高手看看这语句怎么弄?
2楼 发表于 2011-01-10 23:47
很正常的啊,没什么疑问;
3楼 发表于 2011-01-11 03:18
ACMAIN_CHM大哥回复真快!但很奇怪的是,我的table2里面一条数据都没有,
但select A,1,E from table1 where ID not in (select ID from table2)
这一句有结果返回啊,返回的是table1的所有记录,看这个逻辑也是应该返回记录吧?
4楼 发表于 2011-01-11 04:08
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.gimoo.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
5楼 发表于 2011-01-11 04:27
一般在同步中即有INSERT也会有UPDATE,另外还要考虑DELELTE
INSERT ,UPDATE 你可以合并为SQL code
insert table2(A,B,C) select A,1,E from table1 where ID not in (select ID from table2) ON DUPLICATE KEY UPDATE A=VALUES(A),B=1,C=Values(C)
但DELETE你得另外写
SQL code
delete from table2 where id not in (select id from table1)
6楼 发表于 2011-01-11 04:57
CREATE TABLE `table1` (
`cityid` smallint(6) unsigned NOT NULL AUTO_INCREMENT ,
`from_city_id` mediumint(8) unsigned NOT NULL DEFAULT '0' ,
PRIMARY KEY (`cityid`),
KEY `from_city_id` (`from_city_id`)
) ENGINE=MyISAM AUTO_INCREMENT=286 DEFAULT CHARSET=utf8;
INSERT INTO `table1` VALUES ('1', '110100');
INSERT INTO `table1` VALUES ('2', '510100');
CREATE TABLE `table2` (
`cityid` smallint(6) NOT NULL ,
`source` smallint(6) NOT NULL ,
`sourceCity` smallint(8) NOT NULL,
PRIMARY KEY (`cityid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert table2(cityid,source,sourceCity) select cityid,1,from_city_id from table1 where cityid not in (select cityid from table2)
结果有数据了很奇怪,但数据不同步大家可以跑跑看看
数据库:mysql5.0.51a
标题:
内容:

PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号