尝试将CSV数据复制到AlaSQL的内部表中。
但是SELECT * INTO tab FROM CSV()
-根本行不通。此后没有任何变化。表tab
仍然为空,但是直接选择可以正常工作。我做错了什么?
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="res1"></div>
<div id="res2"></div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/alasql/0.3.3/alasql.min.js"></script>
<script type="text/sql" id='sql'>
CREATE table tab(c1 integer);
select count(*) as c1
INTO tab
from CSV("https://rawgit.com/thephpleague/csv/master/examples/data/prenoms.csv");
-- tab still empty!
select *
into HTML("#res1",{headers:true})
from tab;
--direct select works
select count(*) as c1
into HTML("#res2",{headers:true})
from CSV("https://rawgit.com/thephpleague/csv/master/examples/data/prenoms.csv");
</script>
<script type="text/javascript">
alasql('SOURCE "#sql"')
</script>
</body>
</html>
最佳答案
与文件交互将使请求异步。目前,lib无法弄清楚如何等待多语句命令中异步语句的响应。
要解决他的问题,您可以对total语句的每个异步卡盘使用promise符号:
<script type="text/sql" id='sql'>
CREATE table tab(c1 integer);
select count(*) as c1
INTO tab
from CSV("https://rawgit.com/thephpleague/csv/master/examples/data/prenoms.csv");
-- tab still empty!
</script>
<script type="text/sql" id='sql2'>
select *
into HTML("#res1",{headers:true})
from tab;
--direct select works
select count(*) as c1
into HTML("#res2",{headers:true})
from CSV("https://rawgit.com/thephpleague/csv/master/examples/data/prenoms.csv");
</script>
<script type="text/javascript">
alasql.promise(['SOURCE "#sql"','SOURCE "#sql2"'])
</script>
关于javascript - AlaSQL从CSV插入表不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40167060/