代码之家  ›  专栏  ›  技术社区  ›  user142019

使用jQuery分析SQL CREATE TABLE语句?

  •  1
  • user142019  · 技术社区  · 14 年前

    我正在编写一个使用SQL作为输入的web应用程序。此SQL必须始终是 CREATE TABLE

    • 字段名
    • 类型
    • 二进制(如果可用)
    • 允许空值(如果可用)
    • 自动增量(如果可用)

    SQL示例:

    CREATE TABLE customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date)
    

    2 回复  |  直到 14 年前
        1
  •  2
  •   pinkfloydx33    14 年前

    这不是一个完整的解决方案,但希望能让你开始。

    您可以检查以下regex:

    /^CREATE\s+TABLE\s+(\S*)\s*\((.*)\)$/
    

    很粗糙,但应该匹配。

    然后,可以在逗号上拆分字段列表以获取每个字段的信息。除此之外,还可以通过匹配/^(。 )\s(。 )$/ ... 在解析语句的后半部分(类型、长度、空/非空、默认值、标识(1,1))时,您需要更富创造性,但如果您能够找出某种始终适用的模式,我相信这是可以做到的。请注意,上面也假设空白被适当地修剪,但是这很容易。

        2
  •  1
  •   RobertPitt    14 年前

    TrimQuery “,下面是一个示例:

    var selectStatement = queryLang.parseSQL("SELECT Customer.* FROM Customer");
    

    这对一般的SQL语言有很大的支持,比如 JOINS SELECT item.*,relation.other FROM X