0.2.4.1 mor statz
This commit is contained in:
@@ -7,21 +7,22 @@ import (
|
|||||||
|
|
||||||
func InsertOrUpdateEstimatedVehicleJourney(db *sql.DB, values []interface{}) error {
|
func InsertOrUpdateEstimatedVehicleJourney(db *sql.DB, values []interface{}) error {
|
||||||
query := `
|
query := `
|
||||||
INSERT INTO estimatedvehiclejourney (servicedelivery, recordedattime, lineref, directionref, datasource, datedvehiclejourneyref, vehiclemode, dataframeref, originref, destinationref, operatorref, vehicleref, cancellation, other)
|
INSERT INTO estimatedvehiclejourney (servicedelivery, recordedattime, lineref, directionref, datasource, datedvehiclejourneyref, vehiclemode, dataframeref, originref, destinationref, operatorref, vehicleref, cancellation, other)
|
||||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
|
||||||
ON CONFLICT (lineref, directionref, datasource, datedvehiclejourneyref)
|
ON CONFLICT (lineref, directionref, datasource, datedvehiclejourneyref)
|
||||||
DO UPDATE SET
|
DO UPDATE SET
|
||||||
servicedelivery = EXCLUDED.servicedelivery,
|
servicedelivery = EXCLUDED.servicedelivery,
|
||||||
recordedattime = EXCLUDED.recordedattime,
|
recordedattime = EXCLUDED.recordedattime,
|
||||||
vehiclemode = COALESCE(EXCLUDED.vehiclemode, estimatedvehiclejourney.vehiclemode),
|
vehiclemode = COALESCE(EXCLUDED.vehiclemode, estimatedvehiclejourney.vehiclemode),
|
||||||
dataframeref = COALESCE(EXCLUDED.dataframeref, estimatedvehiclejourney.dataframeref),
|
dataframeref = COALESCE(EXCLUDED.dataframeref, estimatedvehiclejourney.dataframeref),
|
||||||
originref = COALESCE(EXCLUDED.originref, estimatedvehiclejourney.originref),
|
originref = COALESCE(EXCLUDED.originref, estimatedvehiclejourney.originref),
|
||||||
destinationref = COALESCE(EXCLUDED.destinationref, estimatedvehiclejourney.destinationref),
|
destinationref = COALESCE(EXCLUDED.destinationref, estimatedvehiclejourney.destinationref),
|
||||||
operatorref = COALESCE(EXCLUDED.operatorref, estimatedvehiclejourney.operatorref),
|
operatorref = COALESCE(EXCLUDED.operatorref, estimatedvehiclejourney.operatorref),
|
||||||
vehicleref = COALESCE(EXCLUDED.vehicleref, estimatedvehiclejourney.vehicleref),
|
vehicleref = COALESCE(EXCLUDED.vehicleref, estimatedvehiclejourney.vehicleref),
|
||||||
cancellation = COALESCE(EXCLUDED.cancellation, estimatedvehiclejourney.cancellation),
|
cancellation = COALESCE(EXCLUDED.cancellation, estimatedvehiclejourney.cancellation),
|
||||||
other = COALESCE(EXCLUDED.other, estimatedvehiclejourney.other);
|
other = COALESCE(EXCLUDED.other, estimatedvehiclejourney.other)
|
||||||
`
|
RETURNING CASE WHEN xmax = 0 THEN 'insert' ELSE 'update' END, id;
|
||||||
|
`
|
||||||
|
|
||||||
stmt, err := db.Prepare(query)
|
stmt, err := db.Prepare(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -29,10 +30,14 @@ func InsertOrUpdateEstimatedVehicleJourney(db *sql.DB, values []interface{}) err
|
|||||||
}
|
}
|
||||||
defer stmt.Close()
|
defer stmt.Close()
|
||||||
|
|
||||||
_, err = stmt.Exec(values...)
|
var action string
|
||||||
|
var id int
|
||||||
|
err = stmt.QueryRow(values...).Scan(&action, &id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error executing statement: %v", err)
|
return fmt.Errorf("error executing statement: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Action: %s, ID: %d\n", action, id)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user