私のアプリケーションのクライアントが、DELETE
ステートメントを間接的に呼び出すか、関数を使用して呼び出すようにします。関数内のdeleteステートメントの実行方法
CREATE OR REPLACE FUNCTION layer_250_delete(layer_id integer)
RETURNS bool AS
$BODY$
BEGIN
EXECUTE 'DELETE FROM layer_250_ WHERE id = $1' USING layer_id;
RETURN TRUE;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION layer_250_delete(integer)
OWNER TO postgres;
は私も生問い合わせてみました:これは私が試したものです
select layer_250_delete(1);
:しかし
...
DELETE FROM layer_250_ WHERE id = 1';
RETURN TRUE;
...
を、私はこのような(バリアント1または2)この関数を呼び出すときlayer_250_
テーブルから行を削除しません。私はstackoverflowでここで数十のスレッドをスキャンしましたが、私の仕事に似た何かを見つけることができませんでした。
STRUCTURE
CREATE TABLE public.layer_250_
(
id integer NOT NULL DEFAULT nextval('layer_250__id_seq'::regclass),
feature_type character varying(100) NOT NULL,
feature_hash character varying(500) NOT NULL,
feature_uid character varying(100) NOT NULL,
geom geometry,
radius integer,
group_id integer,
object_id integer NOT NULL DEFAULT 0,
row_id integer NOT NULL DEFAULT 0,
action_time timestamp without time zone NOT NULL DEFAULT now(),
action_type character varying(255),
action_user_id integer,
action_user_ip character varying(255),
CONSTRAINT layer_250__pkey PRIMARY KEY (id),
CONSTRAINT layer_250__feature_uid_key UNIQUE (feature_uid),
CONSTRAINT enforce_dims_geom_layer_250_ CHECK (st_ndims(geom) = 2),
CONSTRAINT enforce_srid_geom_layer_250_ CHECK (st_srid(geom) = 3857)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.layer_250_
OWNER TO postgres;
シェア構造? '\ d + layer_250_' –
どうぞご覧ください – Jacobian
'begin;を実行するとどうなりますか?説明する(分析する、バッファを入れる)DELETE FROM layer_250_ WHERE id = 1;ロールバック; '?..何か例外?.. –