mysql两个相同的表插入,没有主键

mysql两个相同的表插入,没有主键,mysql,sql,Mysql,Sql,我有两张结构相似和相同的桌子,让我们称它们为tbl_old和tbl_new。 表如下所示 deptid usrname amount 1111 jack 80000 1111 jill 80900 2799 tom 70933 3000 tim 20000 2799 jill 90000 8988 mary 70800 6889 tom 652

我有两张结构相似和相同的桌子,让我们称它们为tbl_old和tbl_new。 表如下所示

    deptid usrname amount

    1111   jack    80000

    1111   jill    80900

    2799   tom     70933

    3000   tim     20000

    2799   jill    90000

    8988   mary    70800

    6889   tom     65200
我在deptid和usrname两列上有唯一的_索引。 没有两行可以同时具有相同的deptid和usrname

现在我有了另一个包含一些数据的表,我想在现有表中插入数据。 以这种方式从新tbl_插入到旧tbl_的数据 如果deptid和usrname组合相同,则tbl_new中的行应替换旧行。 如果数据不存在,则应插入数据

实际上,还有其他几个专栏,比如usramount,我在这里没有提到。 旧tbl_有200万条记录,新tbl_有50万条记录。
请推荐一个运行最快的mysql查询。

我对你的回答有些犹豫,我有20列,写所有的列名都会有问题。。当两个表中的deptid和usrname组合相同时,我不能替换整行吗?plz@david35:不,你不能。您键入的注释比键入20列要多。
INSERT
INTO    tbl_old (deptid, usrname, amount, usramount)
SELECT  deptid, username, amount, usramount
FROM    tbl_new
ON DUPLICATE KEY
UPDATE  amount = VALUES(amount),
        usramount = VALUES(usramount)