AlaSQL 从 CSV 插入 table 不起作用

AlaSQL inserting into table from CSV doesn't work

正在尝试将 CSV 数据复制到 AlaSQL 的内部 table。 但是 SELECT * INTO tab FROM CSV() - 根本行不通。在此之后没有任何改变。 Table tab 仍然是空的,但直接 select 可以正常工作。我做错了什么?

<!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 无法弄清楚如何在多语句命令中等待异步语句的响应。

要解决他的问题,您可以对总语句的每个异步卡盘使用承诺符号:

<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>