0
如果我有幾個包含同一個表格的模式,有沒有辦法讓我一次更新所有表格?例如,如果我有3個模式,每個模式都有一個user
表,其中有列first_name, last_name, email
,我想爲所有3個模式中的每個user
表添加一列phone_num
,有沒有辦法做到這一點?我無法在postgresql文檔中找到一種方法...改變所有postgresql模式中的表格
在此先感謝!
如果我有幾個包含同一個表格的模式,有沒有辦法讓我一次更新所有表格?例如,如果我有3個模式,每個模式都有一個user
表,其中有列first_name, last_name, email
,我想爲所有3個模式中的每個user
表添加一列phone_num
,有沒有辦法做到這一點?我無法在postgresql文檔中找到一種方法...改變所有postgresql模式中的表格
在此先感謝!
我想你想改變表格而不是更新表格。如果是,那麼下面的代碼將爲你工作,
-- Function: alter_table()
-- DROP FUNCTION alter_table();
CREATE OR REPLACE FUNCTION alter_table()
RETURNS integer AS
$BODY$
DECLARE
v_schema text;
BEGIN
FOR v_schema IN
SELECT quote_ident(nspname)
FROM pg_namespace n
WHERE nspname !~~ 'pg_%'
AND nspname <> 'information_schema'
LOOP
EXECUTE 'SET LOCAL search_path = ' || v_schema;
ALTER TABLE "user" ADD COLUMN show_price boolean NOT NULL DEFAULT TRUE;
END LOOP;
return 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION alter_table()
OWNER TO postgres;