2017-05-30 7 views
1

Ich schreibe eine einfache API, die ich mit Postman getestet habe. Ich habe einen automatisch inkrementierenden Primärschlüssel (CustomerTypeID) für meine in MySQL gespeicherte Tabelle "customer_type". Aus praktischen Gründen muss ich Datensätze in dieser Tabelle erstellen können, ohne eine CustomerTypeID zu senden. Wenn ich die folgende POST-Anfrage mit Postman senden:Wie kann ich eine POST-Anfrage senden, ohne einen automatisch inkrementierenden Primärschlüssel in express senden

{ 
    "CustomerType": "testing" 
} 

Die aktualisierte Tabelle zeigt eine neue Zeile mit CustomerTypeID von 2 und einen Customer von NULL.

Unten ist ein Codeausschnitt in meiner Express-API, der diese spezifische Abfrage zeigt und wie das Routing für diese POST-Anfrage funktioniert.

var db = require('../dbconnection.js'); 
var CustomerType = { 
    addCustomerType:function(CustomerType,callback) { 
    return db.query("INSERT INTO customer_type (CustomerType) VALUES (?)", [CustomerType.CustomerType], callback); 
    } 
}; 
module.exports = CustomerType; 

Ich weiß, dass ich die Abfrage

INSERT INTO customer_type (CustomerTypeID, CustomerType) VALUES (?,?); 

zu sagen ändern könnte und dass beide Spalten füllen würde. Aber ich weiß nicht, wie man die Spalte CustomerTypeID weglässt, da es eine Nummer ist, die der Endbenutzer nicht kennen wird.

+0

Wenn ich richtig verstehe, ist Ihre ID bereits richtig eingefügt - das Problem ist mit customerType nicht eingefügt - so sollten Sie überprüfen, welcher customerType-Wert zum Zeitpunkt der Einfügung vorhanden ist – Jan

Antwort

0

Es stellt sich heraus, dass die Syntax für die letzte Abfrage korrekt ist. Ich benutzte die gleiche POST-Anforderung wie zuvor:

{ 
    "CustomerType": "testing" 
} 

Und durch die SQL-Abfrage verwenden, die CustomerTypeID enthält, MySQL wusste nur den Wert von CustomerTypeID zu erhöhen, da es nicht einen Wert in der POST-Anforderung gegeben wurde. Wenn ich denselben POST erneut mit dieser Abfrage ausgeführt habe, habe ich eine neue Zeile mit einer CustomerTypeID und einem CustomerType erhalten.

Verwandte Themen