0

私が認識したいパターンは、名前が _code サフィックスで終わらないテーブル用です (テーブル名は test_code のようであってはなりません) :

CREATE TABLE test1
(
    aa INT, -- comment1
    bb CHAR(10), -- comment2
    cc INT, -- comment3
    PRIMARY KEY (aa)
); 

また、これは次のような 1 行スタイルにすることもできます。

CREATE TABLE test2( aa INT, bb CHAR(10), cc INT, PRIMARY KEY (aa));

次の正規表現を使用しましたが、機能しませんでした。

CREATE TABLE .*\n?\([.\n\;]*

それらを認識して、「)」と「;」の間に文を挿入したい このようになる:

CREATE TABLE test1
(
    aa INT, -- comment1
    bb CHAR(10), -- comment2
    cc INT, -- comment3
    PRIMARY KEY (aa)
)[sentence goes to here]; 

この問題をどのように解決すればよいか教えてください。

4

1 に答える 1

1

あなたはできる

import re
rgx = re.compile(r"^\s*CREATE\s+TABLE\s+([\w\d]+)\s*(\(.*\))\s*;\s*",re.MULTILINE|re.DOTALL)

def sqlsub(sql, statement):
  m = rgx.match(sql)
  if m and not m.group(1).endswith("_code"):
    return "CREATE TABLE %s %s %s;"%(m.group(1),m.group(2),statement)
于 2013-08-22T04:18:52.767 に答える