python - 如何正确引用 sql 字符串

python - how to properly quote sql string

我如何正确引用这个字符串这个 postgres sql 语法 在我的 python 脚本中使用 psycopg2 的 cur.execute ("SELECT .. ")

Postgres sql:

SELECT 'ALTER TABLE RENAME ' || tablename || ' TO ' || 
  REGEXP_REPLACE ( tablename, '_foo$', '_bar' ) || ';'
FROM pg_tables
WHERE tablename LIKE '%_foo';

在我的 python 脚本中:

  cur.execute("SELECT 'ALTER TABLE RENAME ' || tablename || ' TO ' ||
                REGEXP_REPLACE ( tablename, '_foo$', '_bar' ) || ';'
                FROM pg_tables
                WHERE tablename LIKE '%_foo'")

简单的,加上换行符:

cur.execute("SELECT 'ALTER TABLE RENAME ' || tablename || ' TO ' || \
             REGEXP_REPLACE ( tablename, '_foo$', '_bar' ) || ';' \
             FROM pg_tables \
             WHERE tablename LIKE '%_foo'")