From 0893d45c2027bfaa27fb1ebaf8b9f9d3631e4d04 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Fri, 17 Apr 2026 11:25:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E9=87=8D?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据库/2.7.4/初始化-mysql-2.7.4.sql | 9 ++-- .../2.7.4/初始化-postgresql-kingbase-2.7.4.sql | 14 ++---- 数据库/2.7.4/更新-mysql-2.7.4.sql | 45 +++++++++++++++++++ .../2.7.4/更新-postgresql-kingbase-2.7.4.sql | 15 +++++++ 4 files changed, 67 insertions(+), 16 deletions(-) diff --git a/数据库/2.7.4/初始化-mysql-2.7.4.sql b/数据库/2.7.4/初始化-mysql-2.7.4.sql index 4c5c3273f..bfce3678c 100644 --- a/数据库/2.7.4/初始化-mysql-2.7.4.sql +++ b/数据库/2.7.4/初始化-mysql-2.7.4.sql @@ -57,20 +57,17 @@ create table IF NOT EXISTS wvp_device_alarm ); -- 存储移动位置订阅上报的数据 -drop table IF EXISTS wvp_device_mobile_position; -create table IF NOT EXISTS wvp_device_mobile_position +drop table IF EXISTS wvp_mobile_position; +create table IF NOT EXISTS wvp_mobile_position ( id serial primary key COMMENT '主键ID', - device_id character varying(50) not null COMMENT '设备ID', channel_id character varying(50) not null COMMENT '通道ID', - device_name character varying(255) COMMENT '设备名称', - time character varying(50) COMMENT '上报时间', + timestamp BIGINT COMMENT '上报时间', longitude double precision COMMENT '经度', latitude double precision COMMENT '纬度', altitude double precision COMMENT '海拔', speed double precision COMMENT '速度', direction double precision COMMENT '方向角', - report_source character varying(50) COMMENT '上报来源', create_time character varying(50) COMMENT '入库时间' ); diff --git a/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql b/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql index 06b83dda4..bd7b66906 100644 --- a/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql +++ b/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql @@ -102,34 +102,28 @@ COMMENT ON COLUMN wvp_device_alarm.alarm_type IS '报警类型'; COMMENT ON COLUMN wvp_device_alarm.create_time IS '数据入库时间'; -drop table IF EXISTS wvp_device_mobile_position; -create table IF NOT EXISTS wvp_device_mobile_position +drop table IF EXISTS wvp_mobile_position; +create table IF NOT EXISTS wvp_mobile_position ( id serial primary key, - device_id character varying(50) not null, channel_id character varying(50) not null, - device_name character varying(255), - time character varying(50), + timestamp int8 varying(50), longitude double precision, latitude double precision, altitude double precision, speed double precision, direction double precision, - report_source character varying(50), create_time character varying(50) ); COMMENT ON TABLE wvp_device_mobile_position IS '存储移动位置订阅上报的数据'; COMMENT ON COLUMN wvp_device_mobile_position.id IS '主键ID'; -COMMENT ON COLUMN wvp_device_mobile_position.device_id IS '设备ID'; COMMENT ON COLUMN wvp_device_mobile_position.channel_id IS '通道ID'; -COMMENT ON COLUMN wvp_device_mobile_position.device_name IS '设备名称'; -COMMENT ON COLUMN wvp_device_mobile_position.time IS '上报时间'; +COMMENT ON COLUMN wvp_device_mobile_position.timestamp IS '上报时间'; COMMENT ON COLUMN wvp_device_mobile_position.longitude IS '经度'; COMMENT ON COLUMN wvp_device_mobile_position.latitude IS '纬度'; COMMENT ON COLUMN wvp_device_mobile_position.altitude IS '海拔'; COMMENT ON COLUMN wvp_device_mobile_position.speed IS '速度'; COMMENT ON COLUMN wvp_device_mobile_position.direction IS '方向角'; -COMMENT ON COLUMN wvp_device_mobile_position.report_source IS '上报来源'; COMMENT ON COLUMN wvp_device_mobile_position.create_time IS '入库时间'; diff --git a/数据库/2.7.4/更新-mysql-2.7.4.sql b/数据库/2.7.4/更新-mysql-2.7.4.sql index 2ad09bc1c..7b80a5f92 100644 --- a/数据库/2.7.4/更新-mysql-2.7.4.sql +++ b/数据库/2.7.4/更新-mysql-2.7.4.sql @@ -156,6 +156,51 @@ create table IF NOT EXISTS wvp_alarm ( ); +/* +* 20260417 将wvp_device_mobile_position从专属国标的位置记录表,改为通用通道共用的位置记录表 +*/ +DELIMITER // -- 重定义分隔符避免分号冲突 +CREATE PROCEDURE `wvp_20260417`() +BEGIN + IF NOT EXISTS (SELECT column_name FROM information_schema.columns + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position' and column_name = 'timestamp') + THEN + ALTER TABLE wvp_device_mobile_position ADD timestamp BIGINT COMMENT '上报时间'; +END IF; +IF EXISTS (SELECT column_name FROM information_schema.columns + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position' and column_name = 'time') + THEN + UPDATE wvp_device_mobile_position SET timestamp = UNIX_TIMESTAMP(time) * 1000; + ALTER TABLE wvp_device_mobile_position DROP time; +END IF; +IF EXISTS (SELECT column_name FROM information_schema.columns + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position' and column_name = 'device_id') + THEN + ALTER TABLE wvp_device_mobile_position DROP device_id; +END IF; +IF EXISTS (SELECT column_name FROM information_schema.columns + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position' and column_name = 'device_name') + THEN + ALTER TABLE wvp_device_mobile_position DROP device_name; +END IF; +IF EXISTS (SELECT column_name FROM information_schema.columns + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position' and column_name = 'report_source') + THEN +ALTER TABLE wvp_device_mobile_position DROP report_source; +END IF; +-- 修改表名 +IF EXISTS (SELECT table_name FROM information_schema.tables + WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_mobile_position') + THEN +ALTER TABLE wvp_device_mobile_position RENAME TO wvp_mobile_position; +END IF; + +END; // +call wvp_20260417(); +DROP PROCEDURE wvp_20260417; +DELIMITER ; + + diff --git a/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql b/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql index 31904ec08..9e4f80878 100644 --- a/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql +++ b/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql @@ -69,3 +69,18 @@ COMMENT ON COLUMN wvp_alarm.longitude IS '报警附带的经度'; COMMENT ON COLUMN wvp_alarm.latitude IS '报警附带的纬度'; COMMENT ON COLUMN wvp_alarm.alarm_type IS '报警类别'; COMMENT ON COLUMN wvp_alarm.alarm_time IS '报警时间'; + + +/* +* 20260417 将 wvp_device_mobile_position从专属国标的位置记录表,改为通用通道共用的位置记录表 +*/ +ALTER TABLE wvp_device_mobile_position ADD COLUMN IF NOT EXISTS timestamp int8; +UPDATE wvp_device_mobile_position SET timestamp = EXTRACT(EPOCH FROM time::timestamp) * 1000; +ALTER TABLE wvp_device_mobile_position DROP COLUMN IF EXISTS time; +ALTER TABLE wvp_device_mobile_position DROP COLUMN IF EXISTS device_id; +ALTER TABLE wvp_device_mobile_position DROP COLUMN IF EXISTS device_name; +ALTER TABLE wvp_device_mobile_position DROP COLUMN IF EXISTS report_source; + +-- 修改表名 +ALTER TABLE wvp_device_mobile_position RENAME TO wvp_mobile_position; +COMMENT ON COLUMN wvp_mobile_position.timestamp IS '上报时间';