0

PRIMARY KEY と UNIQUE KEY を見つけるための正規表現は何ですか ::

作成クエリの例:

CREATE TABLE `empiccrdb` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `ccrId` INT(11) NOT NULL DEFAULT '0',
  `data` MEDIUMTEXT,
  `delflag` TINYINT(2) DEFAULT '0',
  `isEncrypted` TINYINT(2) DEFAULT '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `ccrId` (`ccrId`)
) ENGINE=INNODB AUTO_INCREMENT=829 DEFAULT CHARSET=latin1
4

1 に答える 1

1

厳密に言えば、あなたの質問に対するコメントが示唆するように、絶対に必要でない限り、文字列の解析/他のコードの処理を避けることが最も賢明です。

これにより、ビルド プロセスが複雑になり、将来の変更管理の問題が発生します。

おそらく、データベースと話し、テーブル構造を決定し、そこからキーを見つけた方がよいでしょうか?

そうは言っても、これはあなたを助けることができるJava正規表現です:

    String sql = "... put it here ...";

    String regex = "(PRIMARY|UNIQUE) KEY[ `a-zA-z]+\\(`([a-zA-Z]+)`\\)";
    Matcher matcher = Pattern.compile(regex).matcher(sql);
    while (matcher.find()) {
        System.out.println(matcher.group(1) + ": " + matcher.group(2));
    }
于 2013-05-16T10:33:16.183 に答える