我想在for循环中创建四个数据库。但是,我收到了一个错误。你能帮我解决这个问题吗?
DO $$
BEGIN
FOR counter IN 1..2 LOOP
CREATE DATABASE 'database_name_%', counter;
END LOOP;
END; $$
ERROR: syntax error at or near "'Counter: %'" LINE 4: CREATE DATABASE 'Counter: %', counter;
从CREATE DATABASE
命令的文档:
无法在事务块内执行CREATE DATABASE。
从那以后:
PostgreSQL实际上将每个SQL语句视为在事务中执行。如果您不发出BEGIN命令,则每个单独的语句都有一个隐式BEGIN和(如果成功)COMMIT。由BEGIN和COMMIT包围的一组语句有时称为事务块
您无法在函数中创建数据库。因此,即使您可以处理当前问题,您也无法执行此功能。