mysql - 合并 3 个重复某些 ID 的表 - mySQL
问题描述
我将 3 个具有相同结构的表合并到一个表中,但是有一些重复的行 ID(一个表中的 id 40 和另一个表中的 id 40),所以当我尝试合并表时,它只得到一个这 2 行,而另一行被忽略。有没有办法获得两行(也许给另一行随机ID?)
replace into table1
select *
from table2
union
select *
from table3
union
select *
from table4
解决方案
这是一个解决方案,但请注意,如果您将表链接到这些表,则外键在这种情况下将没有意义,您必须在其他表中生成它们。
您可以尝试不带主键字段的插入
INSERT INTO Table_1(column1,Column2,column3...)
SELECT column1,Column2,column3... FROM Table_2
UNION
SELECT column1,Column2,column3... FROM Table_3
UNION
SELECT column1,Column2,column3... FROM Table_4
如果 Identity 开启,主键会自动生成 你可以尝试轻松提取列:
SELECT DISTINCT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Table_1';
我假设表具有相同的结构,所以你只做一次,我在 MSSQL 中使用了另一个技巧。
- 右键单击表格并选择“选择前 1000 行”
它将在查询编辑器中显示结果以及包含所有表列的脚本,祝你好运!
如果要更改 auto_increment 的起始编号,可以使用以下查询:
ALTER TABLE Table_2 AUTO_INCREMENT=2000
推荐阅读
- sql - Oracle - 如何根据某个值更改字段值
- docker - 在 Raku 中通过 NativeCall 调用 GSL 函数会引发错误
- javascript - selenium如何运行一个javascript函数
- apache-kafka - 如何从具有特定偏移量的 kafka 主题获取消息
- angular - 是否可以将 @ContentChild 和 @ContentChildren 用于投影的 DOM 元素?
- angular - Stackblitz 简单 MatDialog 示例无法找到 ComponentFactory
- html - css-grid-gallery-img-description-more 文本管理
- javascript - 遍历 NodeList
- json - Power bi:导入嵌套 json 查询
- c# - C# 添加自定义属性,在调用 setter 时设置属性值