我目前正在使用以下语句:REPLACE INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word'这样做的问题是,表名包含附加列(即COL0,COL5,COL6是不存在的)AnotherTable,其数据我不想擦拭。我注意到有一个称为的语句,INSERT INTO ... ON DUPLICATE KEY UPDATE但是我不确定如何将该SELECT * FROM语句与我用来从另一个表复制特定数据的语句合并。如果可能的话,该如何做?如有必要,可以使用补充的Python2.7代码。服务器版本: 10.1.23-MariaDB-9 + deb9u1 Raspbian 9.0
1 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
INSERT INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word' ON DUPLICATE KEY UPDATE Col1=AnotherTable.Col1, Col2=AnotherTable.Col2, Col3=AnotherTable.Col3, Col4=AnotherTable.Col4
请注意,可以通过格式使用完全限定的引用来Table.Column
替代静态/指定值。
正如danblack提醒的那样,该REPLACE
功能由ON DUPLICATE KEY UPDATE
引入的接管,后者取决于UNIQUE
索引或PRIMARY KEY
s。
添加回答
举报
0/150
提交
取消