select id, iot_device_id, stake_mark, direction, timestamp, traffic_volume from dc_traffic_survey_data insert into dc_traffic_survey_data iot_device_id, stake_mark, direction, timestamp, traffic_volume, #{iotDeviceId}, #{stakeMark}, #{direction}, #{timestamp}, #{trafficVolume}, INSERT INTO dc_traffic_survey_data ( iot_device_id, stake_mark, direction, `timestamp`, traffic_volume, following_percentage, time_occupancy_rate, average_headway, traffic_number_of_in_and_small, in_and_small_average_vehicle_speed, bus_traffic_volume, average_speed_of_bus, traffic_volume_of_small_trucks, small_trucks_average_vehicle_speed, medium_truck_traffic_volume, average_speed_of_medium_size_trucks, large_truck_traffic_volume, average_speed_of_large_trucks, average_speed_of_extra_large_trucks, extra_large_trucks_traffic_volume, container_truck_traffic_volume, average_speed_of_container_truck, motorcycle_traffic_volume, average_speed_of_motorcycle, tractor_traffic_volume, average_speed_of_tractor ) VALUES ( #{dcTrafficSurveyData.iotDeviceId}, #{dcTrafficSurveyData.stakeMark}, #{dcTrafficSurveyData.direction}, #{dcTrafficSurveyData.timestamp}, #{dcTrafficSurveyData.trafficVolume}, #{dcTrafficSurveyData.followingPercentage}, #{dcTrafficSurveyData.timeOccupancyRate}, #{dcTrafficSurveyData.averageHeadway}, #{dcTrafficSurveyData.trafficNumberOfInAndSmall}, #{dcTrafficSurveyData.inAndSmallAverageVehicleSpeed}, #{dcTrafficSurveyData.busTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfBus}, #{dcTrafficSurveyData.trafficVolumeOfSmallTrucks}, #{dcTrafficSurveyData.smallTrucksAverageVehicleSpeed}, #{dcTrafficSurveyData.mediumTruckTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfMediumSizeTrucks}, #{dcTrafficSurveyData.largeTruckTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfLargeTrucks}, #{dcTrafficSurveyData.averageSpeedOfExtraLargeTrucks}, #{dcTrafficSurveyData.extraLargeTrucksTrafficVolume}, #{dcTrafficSurveyData.containerTruckTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfContainerTruck}, #{dcTrafficSurveyData.motorcycleTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfMotorcycle}, #{dcTrafficSurveyData.tractorTrafficVolume}, #{dcTrafficSurveyData.averageSpeedOfTractor} ) ON DUPLICATE KEY UPDATE stake_mark = VALUES(stake_mark), traffic_volume = VALUES(traffic_volume), following_percentage = VALUES(following_percentage), time_occupancy_rate = VALUES(time_occupancy_rate), average_headway = VALUES(average_headway), traffic_number_of_in_and_small = VALUES(traffic_number_of_in_and_small), in_and_small_average_vehicle_speed = VALUES(in_and_small_average_vehicle_speed), bus_traffic_volume = VALUES(bus_traffic_volume), average_speed_of_bus = VALUES(average_speed_of_bus), traffic_volume_of_small_trucks = VALUES(traffic_volume_of_small_trucks), small_trucks_average_vehicle_speed = VALUES(small_trucks_average_vehicle_speed), medium_truck_traffic_volume = VALUES(medium_truck_traffic_volume), average_speed_of_medium_size_trucks = VALUES(average_speed_of_medium_size_trucks), large_truck_traffic_volume = VALUES(large_truck_traffic_volume), average_speed_of_large_trucks = VALUES(average_speed_of_large_trucks), average_speed_of_extra_large_trucks = VALUES(average_speed_of_extra_large_trucks), extra_large_trucks_traffic_volume = VALUES(extra_large_trucks_traffic_volume), container_truck_traffic_volume = VALUES(container_truck_traffic_volume), average_speed_of_container_truck = VALUES(average_speed_of_container_truck), motorcycle_traffic_volume = VALUES(motorcycle_traffic_volume), average_speed_of_motorcycle = VALUES(average_speed_of_motorcycle), tractor_traffic_volume = VALUES(tractor_traffic_volume), average_speed_of_tractor = VALUES(average_speed_of_tractor) update dc_traffic_survey_data iot_device_id = #{iotDeviceId}, stake_mark = #{stakeMark}, direction = #{direction}, timestamp = #{timestamp}, traffic_volume = #{trafficVolume}, where id = #{id} delete from dc_traffic_survey_data where id = #{id} delete from dc_traffic_survey_data where id in #{id}