在 PostgreSQL 中创建表而无需重复
在 MySQL 中,“CREATE TABLE IF NOT EXISTS”语法允许您创建表而无需生成如果已经存在,则会出现错误。这确保了脚本可以多次运行而不会创建重复的表。在 PostgreSQL 中,此功能是在 9.1 版本开始引入的。
PostgreSQL 9.1 及更高版本
对于 PostgreSQL 9.1 及更高版本,您可以使用以下语法来创建表:
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
PostgreSQL 之前的版本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$;
然后您可以按如下方式调用该函数:
SELECT create_mytable();
注意事项:
以上是如何在 PostgreSQL 中创建没有重复的表?的详细内容。更多信息请关注PHP中文网其他相关文章!