V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sjmcefc2
V2EX  ›  Python

请教如何扫描 create table 语句生成 insert 语句呢?

  •  
  •   sjmcefc2 · Mar 23, 2019 · 2440 views
    This topic created in 2597 days ago, the information mentioned may be changed or developed.

    想着通过扫描 create table 语句,生成 insert 语句,有例子不? go 或者 python 有现成的包不?

    14 replies    2019-03-25 07:50:11 +08:00
    sunnyadamm
        1
    sunnyadamm  
       Mar 23, 2019
    没看懂你想说啥
    sjmcefc2
        2
    sjmcefc2  
    OP
       Mar 23, 2019
    @sunnyadamm 好吧,就是想着做一个通用的东西,比如读取 create table 的 sql 语句,然后可以生成 insert(v1,v2,v3)(^^^^^^)之类的批量插入语句。把 sql 中所有的 table 字段都能分别拿出来组 insert。
    好像还是没说清楚。。。。。
    sunnyadamm
        3
    sunnyadamm  
       Mar 23, 2019
    @sjmcefc2 真的还是没看懂,,,
    msg7086
        4
    msg7086  
       Mar 23, 2019
    @sunnyadamm 通过分析表结构,对某些数据生成 INSERT 语句吧,类似现在 ORM 在做的工作。
    goophy
        5
    goophy  
       Mar 23, 2019 via iPhone
    确定不用 dump ?
    sunnyadamm
        6
    sunnyadamm  
       Mar 23, 2019
    @msg7086 意思是假设十条数据插入表 a,但是不知道表结构,然后去读取表 a 结构,然后生成 insert 语句后,再插入表 a ?这样?
    sjmcefc2
        7
    sjmcefc2  
    OP
       Mar 23, 2019
    @msg7086 是的。是这样想

    @sunnyadamm 嗯,你这个思路会更加智能。我还是停留在知道建表语句,知道插入数据 ,拼接 insert 上。

    @goophy dump 表出来?
    F281M6Dh8DXpD1g2
        8
    F281M6Dh8DXpD1g2  
       Mar 24, 2019 via iPhone
    information_schema 里面有表定义,提问之前先看看文档
    freedomSky
        9
    freedomSky  
       Mar 24, 2019 via iPhone
    insert 的数据按什么来生成,随机生成不是全没意义的数据吗
    sjmcefc2
        10
    sjmcefc2  
    OP
       Mar 24, 2019
    @liprais 是的,谢谢提醒,我是不会自动读取啊,比如我怎么\d table 到拼出 insert 呢?

    @freedomSky 实际上是有导入数据的哈。主要是不知道怎么分析 sql 中的 create table
    gaopu
        11
    gaopu  
       Mar 24, 2019
    随便用什么语言按得到的表结构字符串拼接一下不就 OK 了。
    snappyone
        12
    snappyone  
       Mar 24, 2019
    sql 解析有很多工具包的,查一下就知道了,我之前用的是 druid
    txy3000
        13
    txy3000  
       Mar 24, 2019
    没看懂你的意思 你是想写一个 ORM 还是写一个 SQL 的 parser
    实现前者元编程 metaclass 重写__new__ 参考 Django 框架或者 SQLAlchemy
    后者 visitor 模式 构建你需要的 token 也可以直接用语法树生成工具 可以自己 GOOGLE 下
    sjmcefc2
        14
    sjmcefc2  
    OP
       Mar 25, 2019
    @txy3000 其实就是想做一个批量导入的工具而已。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2509 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 06:34 · PVG 14:34 · LAX 23:34 · JFK 02:34
    ♥ Do have faith in what you're doing.