您的位置:首页 > 数据库

Julia: 如何一次性insert Array{Any,2} to SQLite DB?

2015-12-02 22:49 399 查看
借此文,感谢Julia 的SQLite库的主力 Sean1708。

准备=>

julia> using SQLite

julia> data = Any[11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45]
4x5 Array{Any,2}:
11  12  13  14  15
21  22  23  24  25
31  32  33  34  35
41  42  43  44  45

julia> db = SQLite.DB()
SQLite.DB(in-memory)


四步曲:

1、Schema

julia> schema = Data.Schema(
["a", "b", "c", "d", "e"],
[Int, Int, Int, Int, Int],
)
0x5 Data.Schema:
a, Int64
b, Int64
c, Int64
d, Int64
e, Int64


2、Sink

julia> sink = SQLite.Sink(schema, db, "my_table")
SQLite.Sink(0x5 Data.Schema:
a, Int64
b, Int64
c, Int64
d, Int64
e, Int64
,SQLite.DB(in-memory),"my_table",SQLite.Stmt(SQLite.DB(in-memory),Ptr{Void} @0x00007fa9b4a3d1e0))


3、Table

julia> source = Data.Table(data)
Data.Table:
4x5 Data.Schema:
Column1, Column2, Column3, Column4, Column5
Int64,   Int64,   Int64,   Int64,   Int64
NullableArrays.NullableArray{T,1}[NullableArrays.NullableArray{Int64,1}[11,21,31,41],NullableArrays.NullableArray{Int64,1}[12,22,32,42],NullableArrays.NullableArray{Int64,1}[13,23,33,43],NullableArrays.NullableArray{Int64,1}[14,24,34,44],NullableArrays.NullableArray{Int64,1}[15,25,35,45]]


4、stream

julia> Data.stream!(source, sink)
SQLite.Sink(0x5 Data.Schema:
a, Int64
b, Int64
c, Int64
d, Int64
e, Int64
,SQLite.DB(in-memory),"my_table",SQLite.Stmt(SQLite.DB(in-memory),Ptr{Void} @0x00007fa9b4a3d1e0))


感谢对下面问题的回答,得到牛人的帮助,感觉真好!

https://github.com/JuliaDB/SQLite.jl/issues/87
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: