有几个问题涉及通过复制现有行来插入新行。
这个问题建立在它的基础上,但有本质上的不同。
我有一个包含 9000 多行的表。大约有10列。第 1 列是自动增量,是唯一键。
我想通过复制现有行中的所有内容,在表中插入与现有行数完全相同的行数,显然第 1 列除外,但第 10 列除外,该列将根据现有行中第 10 列的值进行更改,例如如果现有行中的第 10 列为 23,则它变为 52,如果现有行中的第 10 列为 25,则它变为 53。
所以基本上现有行和新行之间的唯一区别是第 10 列值(除了唯一 ID)。第 10 列将采用非常有限的值。
这样的东西有用吗?
INSERT INTO mycooltable (col2, col3, col4, col5, col6, col7, col8, col9, col10)
SELECT col2, col3, col4, col5, col6, col7, col8, col9, 52
FROM mycooltable WHERE col10 = 23
INSERT INTO mycooltable (col2, col3, col4, col5, col6, col7, col8, col9, col10)
SELECT col2, col3, col4, col5, col6, col7, col8, col9, 53
FROM mycooltable WHERE col10 = 25
最佳答案
是的,这肯定会起作用。
请注意此处找到的 INSERT
语法的第三个示例:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
关于mysql - 通过复制现有行将新行插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311592/