具有外键的MySql更新条目

时间:2017-01-24 14:32:07

标签: mysql

我试图将一个条目插入数据库,除非它已经存在,在这种情况下我只想更新条目。

我正在使用:

let data = {data1: 'test', data2: 'test2'}; //Example
connection.query('REPLACE INTO ' + table_name + ' SET ? ', data, (err) => { //do stuff }

直到我盯着使用外键才有效。我尝试使用ON DUPLICATE KEY UPDATE,但似乎要求我列出所有字段。我将它用于不同的(和复杂的)表格,所以这不是非常合适的:

INSERT INTO ' + table + ' SET ? ' +
        'ON DUPLICATE KEY UPDATE {requires me to list all fields. * Doesn't seem to work}', data, err

1 个答案:

答案 0 :(得分:0)

您不必列出所有字段。您只需列出要更新的字段。

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.5
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: 1.8.2
ios-sim version: 5.0.3
OS: OS X Yosemite
Node Version: v7.0.0
Xcode version: Xcode 7.2.1 Build version 7C1002

与普通的UPDATE或REPLACE查询没有太大区别,您必须在其中命名受影响的字段。由于您可以直接在UPDATE语句中访问INSERT语句中使用的值,因此您不必将它们写入两次。只需使用VALUES(字段),而不是重复插入实际值。