我有两张桌子
TABLE1 : ID(PRIMARTY-INT) COLUMN1(CHAR),LAST_MODIFIED TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
TABLE2 : ID(INT) COLUMN1(CHAR)
TABLE2
包含大约1000条记录。
如果我使用
REPLACE INTO TABLE1(ID,COLUM1) SELECT ID,COLUMN FROM TABLE2
然后即使先前的记录相同,LAST_MODIFIED
也会更新。
如果我使用INSERT
,则会在重复记录时出错。
如果我使用INSERT IGNORE
,则无法更新记录。
我想要的:更新/添加新值,如果新值与旧值不同,也会更新LAST_MODIFIED
值。
答案 0 :(得分:0)
你可以这样做:
REPLACE INTO TABLE1(ID,COLUM1)
SELECT TABLE2.ID,TABLE2.COLUMN
FROM TABLE2
INNER JOIN TABLE1 on (TABLE1.ID = TABLE2.ID) AND (TABLE1.COLUMN <> TABLE2.COLUMN)
或者你可以试试这个:
UPDATE table1 SET
table1.field1 = table2.field1
....
FROM table1
INNER JOIN table2 on table1.id = table2.id