1.預存程序名字.sql
use test;DROP PROCEDURE IF EXISTS deleteconfigifdelcamera;delimiter //CREATE PROCEDURE deleteconfigifdelcamera(IN cameraid INTEGER) BEGIN declare camera_ID INTEGER; select id into camera_ID from camera where id = cameraid; IF (camera_ID > 0) THEN DELETE vehicleinfo, vehicletype, vehiclelicense, bodycolor from vehicleinfo left join vehicletype on vehicletype.id = vehicleinfo.vehicletype_id join vehiclelicense on vehiclelicense.id=vehicleinfo.vehiclelicense_id join bodycolor on bodycolor.id=vehicleinfo.bodycolor_id where vehicleinfo.id < record_ID; DELETE from BaseConfig where BaseConfig.cameraid = camera_ID; DELETE from BrightControlConfig where BrightControlConfig.cameraid = camera_ID; DELETE from LaneInfo where LaneInfo.cameraid = camera_ID; DELETE from LightAndLaneRelation where LightAndLaneRelation.LaneId in (select MIN(LaneId) from LaneInfo where LaneInfo.cameraid = camera_ID); DELETE from OSDConfig where OSDConfig.cameraid = cameraid; DELETE from SigLightConfig where SigLightConfig.camearid = camera_ID; DELETE from VPalgorithmConfig where VPalgorithmConfig = camera_ID; DELETE from SerialConfig where ; END IF; END;//
delimiter ;
2.shell指令碼名字.sh
#!/bin/bashmysql --user=root < SQL_tables.sqlmysql --user=root < insertbodycolor.sqlmysql --user=root < insertvehiclelicense.sqlmysql --user=root < insertvehicletype.sqlmysql --user=root < deletehistoryrecord.sqlmysql --user=root < insertuploadqueue.sqlmysql --user=root < inserthistoryrecord.sqlmysql --user=root < inserttrafficdata.sql
其中SQL_TABLE.sql的開頭是
drop database if exists test;create database test default character set utf8;connect test;
DROP TABLE if exists vehicletype;
如何測試預存程序:
call 預存程序名(參數);