PostgreSQL:使用“CREATE TABLE IF NOT EXISTS”处理表创建
在 PostgreSQL 中,使用“CREATE TABLE IF NOT EXISTS”允许创建表而没有重复创建表的风险。此功能是在 PostgreSQL 9.1 中引入的,可以轻松地以确保表存在的方式创建表,而无需手动检查它们是否存在。
PostgreSQL 9.1 及更高版本的语法
要在 PostgreSQL 9.1 及更高版本中使用“CREATE TABLE IF NOT EXISTS”创建表,只需将命令指定为如下:
CREATE TABLE IF NOT EXISTS myschema.mytable ( i integer );
注意:将“myschema”和“mytable”替换为您所需的架构和表名称。
旧版本的解决方法
对于 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中文网其他相关文章!