在 PostgreSQL 中使用“CREATE TABLE IF NOT EXISTS”创建表
仅当表尚不存在时才创建表的能力是一个有用的功能,可确保表仅创建一次,即使脚本运行多次
在 MySQL 中,可以使用以下语句实现此功能:
CREATE TABLE IF NOT EXISTS foo ...;
PostgreSQL
在 PostgreSQL 9.1 及更高版本中, “如果不存在则创建表”语法是支持:
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
旧版本的解决方法
对于 9.1 之前的 PostgreSQL 版本,可以使用函数来实现相同的功能:
CREATE OR REPLACE FUNCTION create_mytable() RETURNS void LANGUAGE plpgsql AS $func$ BEGIN IF EXISTS (SELECT 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$;
只有在没有创建表的情况下才可以多次调用该函数来创建表
注释:
以上是如何在 PostgreSQL 中创建尚不存在的表?的详细内容。更多信息请关注PHP中文网其他相关文章!