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

2019-03-23 22:55:36 +08:00
 sjmcefc2

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

2005 次点击
所在节点    Python
14 条回复
sunnyadamm
2019-03-23 23:15:29 +08:00
没看懂你想说啥
sjmcefc2
2019-03-23 23:22:46 +08:00
@sunnyadamm 好吧,就是想着做一个通用的东西,比如读取 create table 的 sql 语句,然后可以生成 insert(v1,v2,v3)(^^^^^^)之类的批量插入语句。把 sql 中所有的 table 字段都能分别拿出来组 insert。
好像还是没说清楚。。。。。
sunnyadamm
2019-03-23 23:26:56 +08:00
@sjmcefc2 真的还是没看懂,,,
msg7086
2019-03-23 23:28:05 +08:00
@sunnyadamm 通过分析表结构,对某些数据生成 INSERT 语句吧,类似现在 ORM 在做的工作。
goophy
2019-03-23 23:29:14 +08:00
确定不用 dump ?
sunnyadamm
2019-03-23 23:37:30 +08:00
@msg7086 意思是假设十条数据插入表 a,但是不知道表结构,然后去读取表 a 结构,然后生成 insert 语句后,再插入表 a ?这样?
sjmcefc2
2019-03-23 23:45:08 +08:00
@msg7086 是的。是这样想

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

@goophy dump 表出来?
liprais
2019-03-24 00:16:49 +08:00
information_schema 里面有表定义,提问之前先看看文档
freedomSky
2019-03-24 00:27:29 +08:00
insert 的数据按什么来生成,随机生成不是全没意义的数据吗
sjmcefc2
2019-03-24 00:30:53 +08:00
@liprais 是的,谢谢提醒,我是不会自动读取啊,比如我怎么\d table 到拼出 insert 呢?

@freedomSky 实际上是有导入数据的哈。主要是不知道怎么分析 sql 中的 create table
gaopu
2019-03-24 08:01:19 +08:00
随便用什么语言按得到的表结构字符串拼接一下不就 OK 了。
snappyone
2019-03-24 08:55:28 +08:00
sql 解析有很多工具包的,查一下就知道了,我之前用的是 druid
txy3000
2019-03-24 22:51:19 +08:00
没看懂你的意思 你是想写一个 ORM 还是写一个 SQL 的 parser
实现前者元编程 metaclass 重写__new__ 参考 Django 框架或者 SQLAlchemy
后者 visitor 模式 构建你需要的 token 也可以直接用语法树生成工具 可以自己 GOOGLE 下
sjmcefc2
2019-03-25 07:50:11 +08:00
@txy3000 其实就是想做一个批量导入的工具而已。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX