标签: sqlite

如何编译sqlite3扩展-CSV虚拟表

我正在尝试使用sqlite3 的CSV 虚拟表扩展。我在 Mac (MacOS High Sierra 10.13.6) 上编译扩展的第一步遇到了困难。

我从此页面下载了 csv.c 的源代码。我还从这里获取了 sqlite 源代码合并。

我使用以下命令进行编译:

gcc -g -fPIC -dynamiclib csv.c -o csv.dylib
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

csv.c:115:3: error: no member named '__builtin___vsnprintf_chk' in 'struct sqlite3_api_routines'
  sqlite3_vsnprintf(CSV_MXERR, p->zErr, zFormat, ap);
  ^~~~~~~~~~~~~~~~~
/usr/include/sqlite3ext.h:437:53: note: expanded from macro 'sqlite3_vsnprintf'
#define sqlite3_vsnprintf              sqlite3_api->vsnprintf
                                       ~~~~~~~~~~~  ^
/usr/include/secure/_stdio.h:75:3: note: expanded from macro 'vsnprintf'
  __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
  ^
csv.c:115:21: warning: incompatible integer to pointer conversion passing 'int' to parameter of type …
Run Code Online (Sandbox Code Playgroud)

csv sqlite

1
推荐指数
1
解决办法
1360
查看次数

BeforeInsert 和 AfterInsert 钩子未被调用

我有一个BeforeInsertandAfterInsert钩子没有被调用。它所做的只是记录hook。我正在使用 Nestjs-graphql。

您可以运行此示例npm i,然后发送一个突变(playground 位于localhost:3000/graphql)body 处createUser(createInput:{password:"password" email:"test@test.com"})。它应该成功并记录hook

钩子(没有记录任何内容):

@Entity('user')
export default class UserEntity {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    @IsEmail()
    email: string;

    @Column()
    @Length(7, 42)
    password: string;

    @BeforeInsert()
    @AfterInsert()
    async validate() {
        console.log("hook")
    }
}
Run Code Online (Sandbox Code Playgroud)

它是从服务中调用的。插入不会引发错误,并here2会被记录:

@Injectable()
export class UserService {
    constructor(
        @InjectRepository(UserEntity)
        private readonly userRepository: Repository<UserEntity>,
    ) { }

    async createNew(email: string, password: string): Promise<number> {
        console.log("here2")
        const hashedPassword = …
Run Code Online (Sandbox Code Playgroud)

sqlite graphql typeorm nestjs

1
推荐指数
1
解决办法
8387
查看次数

如何在sqlite导入的csv中设置主键

我将下表存储为 csv 文件:

project_number,project_name
1,project_1
2,project_2
3,project_3
Run Code Online (Sandbox Code Playgroud)

我想出了如何导入它并在 sqlite3 数据库中显示其架构,如下所示:

sqlite> .mode csv
sqlite> .import 
sqlite> .import test.csv test
sqlite> .schema test
CREATE TABLE test(
  "project_number" TEXT,
  "project_name" TEXT
);
Run Code Online (Sandbox Code Playgroud)

我现在想将该列设置project_number为我的主键,并将其设置为整数。我从之前的问题中了解到,通过更改原始表很难做到这一点,因此我尝试创建一个新表,并使用create tablecreate table asinsert into的组合进行填充select * from,如下所示

sqlite> create table test_2 (project_name text, project_number primary key);
sqlite> insert into test_2 (select project_name, project_number from test);
Error: near "select": syntax error
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,这导致了语法错误,我不明白为什么。如何为从 csv 导入的表设置主键?

sqlite

1
推荐指数
1
解决办法
1273
查看次数

使用 SQLite 数据库在 azure 上发布时出现“实体框架 SQL 脚本生成失败”错误

我在 MSDN 和 SF 上发现了很多与我的问题类似的问题,但没有一个对我有帮助,或者可能是我不理解它们。当我尝试在 Azure 上发布我的应用程序时,出现以下错误。

实体框架 SQL 脚本生成失败

我这里使用的是 SQLite 数据库。需要注意的是,在我的本地机器上一切正常。该应用程序运行良好。

我已经在包管理器控制台上运行了这些命令 -Add-Migration -Initial并且Update-Database

发布设置

在此输入图像描述

在这张照片中,我在 EF 迁移字段中输入“Initial”作为连接字符串。结果是一样的。我猜可能是这里造成的问题。

应用程序设置.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "EmployeeDB": "Data Source=employeedb.db;"
  }
}
Run Code Online (Sandbox Code Playgroud)

asp.net sqlite entity-framework azure visual-studio-2019

1
推荐指数
1
解决办法
5598
查看次数

我应该使用 Django 的默认数据库部署 Web 服务器吗?

我是 Django 的新手,我几乎正处于部署 Web 服务器的阶段。

我只是对 Django 的数据库有一些疑问。目前我使用默认的 sqlite3 数据库来存储所有用户模型以及信息模型。我正在考虑使用 AWS 来部署我的网络服务器。

因此,当我到达那个阶段时,我应该继续使用 sqlite 还是应该切换到 AWS 的数据库或 Firebase 之类的数据库。如果我继续使用 sqlite,信息将存储在哪里以及如何存储?如果我切换到 PostgreSQL 之类的东西,信息将存储在哪里,它会安全/快速吗(即使我设法获得数千个用户)?

非常感谢,这个问题可能非常基本,但我非常困惑。

python database sqlite django amazon-web-services

1
推荐指数
1
解决办法
758
查看次数

订单管理 SQL 架构

我正在为一家公司的销售人员设计一个 SQL 数据库,其中每个客户都会从该公司订购多个商品。我想为客户单独存储该订单。这将链接到客户表。

客户表:

  • 客户ID
  • 客户名称
  • 客户电话

目前我正在考虑为每个订单制作一个单独的订单表

订单表:

  • 产品编号
  • 产品数量
  • 总金额

但不知道如何将其链接回客户。或者说如何唯一标识每个订单表。我会在 NoSQL 中完成,但数据必须本地存储在 SQLite 中。客户可能会多次订购,因此我应该能够识别当前和以前的订单

sql sqlite

1
推荐指数
1
解决办法
1033
查看次数

使用 Node js 时 Sqlite 出现问题。Like 运算符和参数

所以我尝试根据用户输入选择行,如下所示:

db.all(
  'SELECT * FROM houses WHERE location LIKE "%$input%"',
  {
    $input: name,
  },
  (error, rows) => {
    res.send(rows);
  }
);
Run Code Online (Sandbox Code Playgroud)

但是,数据库以未定义的值进行响应。我能做些什么?

sql sqlite node.js sql-like node-sqlite3

1
推荐指数
1
解决办法
1391
查看次数

如何在 .NET Framework 上使用 SQLite EF Core 数据库提供程序打包单文件可执行文件?

我想使用SQLite Entity Framework Core Database Provider编写一个应用程序,将其打包为单文件可执行文件(即没有任何 .dll 文件的单个 exe 文件)并使其在 .NET Framework 4.7.2 上运行。

这可能吗?如果可以,如何实现?

.net sqlite entity-framework-core

1
推荐指数
1
解决办法
692
查看次数

如何从 SQLite 数据库读取所有表并将其存储为 R 中的数据集/变量?

我有一个包含许多表的大型 SQLite 数据库。我已使用 RSQLite 和 DBI 包在 RStudio 中建立了与此数据库的连接。(我已命名该数据库db

library(RSQLite)
library(DBI)
Run Code Online (Sandbox Code Playgroud)

目前我必须读入所有表并手动为它们分配名称。例如:

country <- dbReadTable(db, "country")
date <- dbReadTable(db, "date")
#...and so on
Run Code Online (Sandbox Code Playgroud)

您会发现,如果您有很多表,这可能是一个非常耗时的过程。

所以我想知道是否可以创建一个新函数或使用现有函数(例如lapply()?)来更有效地完成此操作并从本质上加快此过程?

非常感谢任何建议:)

sql database sqlite r dataset

1
推荐指数
1
解决办法
1442
查看次数

Sqlite EF Core 5 不允许我进行不区分大小写的搜索

因此,我尝试使用 ef-core 进行 linq 查询来执行 where 搜索,但无论我尝试什么,都无法让它执行不区分大小写的搜索。

例如,如果我搜索“星期二”,它不会获取任何数据,因为数据库中的所有内容都保存为“星期二”。

搜索后,我发现您必须通过 ef core 迁移告诉 sqlite 您希望它对每个属性不区分大小写,并使用以下代码。

b.Property<string>("DayOfWeek")
    .HasColumnType("TEXT COLLATE NOCASE");
Run Code Online (Sandbox Code Playgroud)

该信息位于 ContextModelSnapshot.cs 文件中。

所以我这样做了,删除了数据库并执行了“更新数据库”,创建了一个新数据库,但没有任何改变。

现在我当然可以.ToLower()在每个搜索中使用 the ,但是如果我忘记将其添加到每个 where 子句,那只会影响性能并增加失败的可能性。

我使用以下包来创建、迁移和访问数据库。

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.1">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.1">
Run Code Online (Sandbox Code Playgroud)

我错过了什么或者我是否误解了 sqlite 不区分大小写查询的整个概念?

sqlite entity-framework-core asp.net-core

1
推荐指数
1
解决办法
2336
查看次数