INSERT IGNORE
INTO AdminAccounts (Name)
SELECT Name
FROM Matrix;
如果您不信任INSERT IGNORE,可以在插入之前显示新的 Name 值的替代方法:
CREATE TABLE NewName SELECT Name FROM Matrix WHERE 1=2;
INSERT INTO NewName
SELECT Name FROM AdminAccounts A
LEFT JOIN Matrix B USING (Name)
WHERE B.Name IS NULL;
INSERT INTO Matrix (Name) SELECT Name FROM NewNames;
这将插入以前不在 Matrix 表中的新名称字段。
如果您不信任
INSERT IGNORE
,可以在插入之前显示新的 Name 值的替代方法:该表仅收集当前不在的
NewName
那些表。这可以让您有机会查看新名称。之后,您可以将所有内容插入到 Matrix 中。AdminAccounts
Matrix
NewName
如果您将 'AdminAccounts' 中的 'name' 字段设为主键或唯一索引,则可以简单地使用
因此,如果表中不存在名称,则将插入该名称;如果存在,则删除旧行并插入新行。