有两张表 aa 和 bb,结构(字段)是一致的
要把 bb 表添加到 aa 表的末端
以前没 id 重复的时候,我是这么做的:
INSERT INTO aa SELECT * FROM bb ORDER BY UpdateTime;
加完后再
ALTER TABLE aa
DROP id
;
ALTER TABLE aa
ADD id int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST;
重新梳理一遍自增长 id
现在两张表有自增长 id 重复,怎么样愉快便捷地合并两张表呢?(如果加入数据后,能把 aa 表的 ID 也同时再梳理一遍就更好了)
1
QQQQQQQ 2019-12-03 16:31:10 +08:00
NOT EXISTS 去 insert 不就行了吗
|
2
qazwsxkevin OP @QQQQQQQ 不知道是我理解的不对问题,还是您了。。。
不是 NOT EXISTS 的问题? 重复的值是主键,想寻求方法,便捷地将 bb 的主键去掉,或者重新调整一个范围。。。 去到 aa 表里,所有主键 id 也是需要重新梳理一次的,所以添加数据前,bb 表的 id 随便调节一个范围也没问题,或者说有啥办法连调节都不需要了,直接就添加过去 aa 表了。。。 还是您意思是,两表主键重复也可以 NOT EXISTS 强势 insert? |
3
bsg1992 2019-12-03 17:58:09 +08:00
既然都合并了为什么不直接如插入呢 和主键没关系吧
|
4
linzhzh 2019-12-03 19:52:40 +08:00
要么新建一张表 用哈希做主键,
要么 ab 表的自增起始不同 ,比如 A 从 10000000 起,B 表从 50000000 起 b 直接就插入 a 了不会重复。 |
5
Jemini 2019-12-03 20:38:35 +08:00 via iPhone
创建第三张表,insert aa 在 insert bb、不要 select id 可以吗
insert 完再 rename |
6
wuwukai007 2019-12-03 21:28:57 +08:00 via Android
用代码读 b,手动改主键列,在手动插入吧。
具体到 py,pandas.read_sql 在 to_sql |
7
realpg 2019-12-03 22:05:40 +08:00
insert into tbl_a select null,a1,a2,a3,a4,a5,a6,a7 from tbl_b
|
8
QQQQQQQ 2019-12-04 08:59:16 +08:00
@qazwsxkevin 嗯,主观以为是想去重了。。。是想按照 ID 排序全部插进去?
|
9
ffkjjj 2019-12-04 09:10:36 +08:00
insert into aa( col1, col2, col3) select (col1, col2, col3) from bb;
不要带上 id 就好了 |
10
Raymon111111 2019-12-04 10:07:27 +08:00
直接 insert
|
11
yolee 2019-12-04 14:09:45 +08:00
若有表 aa(col0, col1, col2, col3),bb(col0, col1, col2, col3),建第三张表 cc(col0, col1, col2, col3),id 都为 col0,并自增,然后:
INSERT INTO cc(col1, col2, col3) SELECT (col1, col2, col3) FROM aa; # 选择表 aa 中除了 id 的列插入到表 cc INSERT INTO cc(col1, col2, col3) SELECT (col1, col2, col3) FROM bb; # 选择表 bb 中除了 id 的列插入到表 cc |
13
qsbaq 2019-12-04 15:02:49 +08:00
不带 ID 插入即可。
|