PostgreSQL创建表如果不存在
发布时间:2020-12-13 16:52:03 所属栏目:百科 来源:网络整理
导读:在MySQL脚本中,您可以写: CREATE TABLE IF NOT EXISTS foo ...; … 其他的东西 … 然后可以运行脚本多次而不重新创建表。 你如何在PostgreSQL中做到这一点? 此功能已于 implemented in Postgres 9.1 : CREATE TABLE IF NOT EXISTS myschema.mytable (i i
在MySQL脚本中,您可以写:
CREATE TABLE IF NOT EXISTS foo ...; … 其他的东西 … 然后可以运行脚本多次而不重新创建表。 你如何在PostgreSQL中做到这一点?
此功能已于
implemented in Postgres 9.1:
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer); 对于旧版本,这里有一个函数来解决它: CREATE OR REPLACE FUNCTION create_mytable () RETURNS void AS $func$ BEGIN IF EXISTS (SELECT 1 FROM pg_catalog.pg_tables WHERE schemaname = 'myschema' AND tablename = 'mytable') THEN RAISE NOTICE 'Table "myschema"."mytable" already exists.'; ELSE CREATE TABLE myschema.mytable (i integer); END IF; END $func$ LANGUAGE plpgsql; 呼叫: SELECT create_mytable(); -- call as many times as you want. 如果用户没有创建表所需的特权,您可能想使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |