From a447918f5494e081a640705f89a58d9920025729 Mon Sep 17 00:00:00 2001 From: Yu Sun Date: Mon, 22 Aug 2022 11:06:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E5=A4=84=E7=90=86ON=20DELETE?= =?UTF-8?q?=20CASCADE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EdgeManager/EController/EConfigure.php | 31 ++++++-------------------- EdgeManager/Init.php | 23 +++++++++++++++---- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/EdgeManager/EController/EConfigure.php b/EdgeManager/EController/EConfigure.php index 02b367c..bc3296e 100644 --- a/EdgeManager/EController/EConfigure.php +++ b/EdgeManager/EController/EConfigure.php @@ -50,30 +50,13 @@ class EConfigure { } function remove_server() { - pg_query($this -> dbconn, "BEGIN"); - $exists = pg_query($this -> dbconn, sprintf( - "SELECT EXISTS( - SELECT 1 FROM hf_mes_scada_edgeserver_controller_device - WHERE server_id = '%s' - )", $this -> post -> id - )); - if (pg_fetch_assoc($exists)['exists'] === 't') { - pg_query($this -> dbconn, "ROLLBACK"); - return "REMAINING"; - } else { - $res = pg_delete( - $this -> dbconn, - 'hf_mes_scada_edgeserver_controller_server', - (array) $this -> post, - ); - if ($res) { - pg_query($this -> dbconn, "COMMIT"); - return true; - } else { - pg_query($this -> dbconn, "ROLLBACK"); - return false; - } - } + $res = pg_delete( + $this -> dbconn, + 'hf_mes_scada_edgeserver_controller_server', + (array) $this -> post, + ); + + return $res ? true : "REMAINING"; } function update_server() { diff --git a/EdgeManager/Init.php b/EdgeManager/Init.php index f77e4c3..1a0f80a 100644 --- a/EdgeManager/Init.php +++ b/EdgeManager/Init.php @@ -12,8 +12,20 @@ function init_db($server_name, $port, $user, $password) { pg_query($dbconn, "CREATE EXTENSION IF NOT EXISTS timescaledb"); pg_query( $dbconn, - "CREATE TYPE category - AS ENUM ('DEVICE_STATUS', 'ITEM_ID', 'DEVICE_DATA', 'PROCESS_DATA', 'RESULT_DATA', 'STATISTICAL_DATA')" + "DO $$ BEGIN + CREATE TYPE category + AS ENUM ( + 'DEVICE_STATUS', + 'ITEM_ID', + 'DEVICE_DATA', + 'PROCESS_DATA', + 'RESULT_DATA', + 'STATISTICAL_DATA' + ); + EXCEPTION + WHEN duplicate_object + THEN null; + END $$" ); pg_query($dbconn, "CREATE TABLE IF NOT EXISTS hf_mes_scada_data_capture_node_configure ( id serial2 primary key, @@ -42,14 +54,17 @@ function init_db($server_name, $port, $user, $password) { id serial2 primary key, code text, name text NOT NULL, - server_id serial2 references hf_mes_scada_edgeserver_controller_server(id), + server_id serial2 + REFERENCES hf_mes_scada_edgeserver_controller_server(id), conf json, create_date timestamp NOT NULL DEFAULT NOW(), note text )"); pg_query($dbconn, "CREATE TABLE IF NOT EXISTS hf_mes_scada_edgeserver_controller_command ( id serial8 primary key, - server_id serial2 references hf_mes_scada_edgeserver_controller_server(id), + server_id serial2 + REFERENCES hf_mes_scada_edgeserver_controller_server(id) + ON DELETE CASCADE, device_name text, command text, create_date timestamp NOT NULL DEFAULT NOW(),