【发布时间】:2020-09-13 18:41:58
【问题描述】:
我是 mysql 新手,我正在尝试在表中插入很多,如果有重复的名称,请忽略它并继续。我目前在 nodejs 工作。这是我的代码示例
let sql = `INSERT INTO integrations
(name)
VALUES ?
ON DUPLICATE KEY UPDATE
name=VALUES(name)`;
this.connection.query(sql, [this.createValues()], function (err :any, result: any) {
if (err) throw err;
console.log('modified ' + result.affectedRows + "records(s)");
});
createValues() 返回一个类似的数组
["bob", "mike", "anna", "theo", "karen"]
问题是值总是被再次插入,我最终在表中得到多个同名值。 最好的方法是什么。
【问题讨论】:
-
name字段是否有唯一索引或pk?
-
是的,我用 TypeOrm 创建了这个表,这里是这个导出类的实体 Integrations { @PrimaryGeneratedColumn() id: number; @Column({ unique: true }) 名称:字符串; }
-
那么您的列中不能有重复项。