小编CL.*_*CL.的帖子

基于主键列表的高效sqlite查询

为了根据 ID 列表(即不同的主键)查询 sqlite 表,我使用了以下语句(基于Chinook 数据库的示例 ):

SELECT * FROM Customer WHERE CustomerId IN (1,2,3,8,20,35)
Run Code Online (Sandbox Code Playgroud)

但是,我的实际 ID 列表可能会变得相当大(> 1000)。因此,我想知道这种使用IN语句的方法是否最有效,或者是否有更好/优化的方法来基于主键列表查询 sqlite 表。

sqlite performance select primary-key

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

sqlite - 将数据插入blob

我正在尝试使用SQLite3的shell将二进制数据插入到blob中,这意味着常规的SQL语句.这是我的表:

CREATE TABLE MYTABLE
    (ID INTEGER,
     BINDATA BLOB NOT NULL,
     SOMEFK INTEGER REFERENCES OTHERTABLE(ID) NOT NULL,
     PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试的插入语句:

INSERT INTO MYTABLE (BINDATA, SOMEFK)
VALUES (__READBINDATA('/tmp/somefile'), 1);
Run Code Online (Sandbox Code Playgroud)

随着__READBINDATA(file)我正在寻找的功能.那可能吗?

sql sqlite shell

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

Django OperationalError:无法为连接分叉新进程

我今天早上开始在生产环境中得到这个错误,因为Django-storages,Boto和Django-compressor昨天在S3上放置静态文件,虽然我不知道这是否相关......

OperationalError: could not fork new process for connection: Cannot allocate memory

could not fork new process for connection: Cannot allocate memory
could not fork new process for connection: Cannot allocate memory


Stacktrace (most recent call last):

  File "django/core/handlers/base.py", line 89, in get_response
    response = middleware_method(request)
  File "reversion/middleware.py", line 17, in process_request
    if hasattr(request, "user") and request.user.is_authenticated():
  File "django/utils/functional.py", line 184, in inner
    self._setup()
  File "django/utils/functional.py", line 248, in _setup
    self._wrapped = self._setupfunc()
  File "django/contrib/auth/middleware.py", line 16, in <lambda>
    request.user …
Run Code Online (Sandbox Code Playgroud)

django postgresql heroku out-of-memory

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

右对齐 I2S 模式相对于左对齐 I2S 模式和基本 I2S 模式的优缺点是什么?

I2S 规范提供了不同的操作模式。我试图寻找一种模式相对于另一种模式的优势,但找不到任何好的文献。任何人都可以提供或解释一种模式相对于另一种模式的优势吗?

hardware audio serial-communication

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

linux 内核中的 __context__ 属性

在内核\include\linux\compiler.h

#define __acquire(x)    __context__(x,1)
#define __release(x)    __context__(x,-1)
Run Code Online (Sandbox Code Playgroud)

请帮助我理解,在上面的陈述中,我们试图通过context实现什么。我找不到它的详细信息。我在理解 linux 内核中的自旋锁实现时越过了它。

linux-kernel

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

如何在ponyorm中创建rowcount?蟒蛇

我正在使用这个Python ORM来管理我的应用程序中的数据库:ponyorm.com

我只是在我的表中更改了一个属性,我会向我做一个rowcount,他返回1为TRUE,0为FALSE.

例如:仅使用sqlite3我会这样做:

user = conn.execute('SELECT * FROM users')

count = user.rowcount

if count == 1:
    print('Return %d lines' %count)
else:
    print('Bad....return %d lines', %count)
Run Code Online (Sandbox Code Playgroud)

python sqlite ponyorm

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

在 CHECK 约束中使用子查询的替代方法?

我正在尝试构建一个简单的酒店房间登记数据库作为学习练习。

CREATE TABLE HotelReservations
(
    roomNum INTEGER NOT NULL,
    arrival DATE NOT NULL,
    departure DATE NOT NULL,
    guestName CHAR(30) NOT NULL,

    CONSTRAINT timeTraveler CHECK (arrival < departure) /* stops time travelers*/
    /* CONSTRAINT multipleReservations CHECK (my question is about this) */

    PRIMARY KEY (roomNum, arrival)
);
Run Code Online (Sandbox Code Playgroud)

我无法指定不允许为尚未腾出的房间插入新预订的约束。例如(下图),客人 'B' 在 'A' 退房之前入住 123 房间。

INSERT INTO HotelStays(roomNum, arrival, departure, guestName)
VALUES 
    (123, date("2017-02-02"), date("2017-02-06"), 'A'),
    (123, date("2017-02-04"), date("2017-02-08"), 'B');
Run Code Online (Sandbox Code Playgroud)

这不应该被允许,但我不确定如何编写此约束。我的第一次尝试是编写一个子查询检查,但我无法找出正确的子查询,因为我不知道如何访问新插入的 'roomNum' 值来执行子查询。然后我还发现大多数 SQL 系统甚至不允许在 check 内部进行子查询。

那么我应该如何写这个约束呢?我读了一些关于触发器的文章,它们似乎可以解决这个问题,但这真的是唯一的方法吗?或者我只是密集而缺少编写约束的明显方法?

sqlite triggers subquery check-constraints relational-database

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

如何让Superset识别字符串为日期时间?

我正在使用Superset作为SQLite数据库的数据可视化工具。因为SQLite没有DATETIME类型,所以我使用TEXT类型添加日期和一个小时。

但是,Superset仍无法识别此“ TEXT”或String是日期!

这是我的数据:

CREATE TABLE TEST(
    TEST_ID int PRIMARY KEY NOT NULL,
    VEHICLE_ID int NULL,
    TEST_TYPE_ID int NULL,
    CHECK_TYPE_ID int NULL,
    NUM_TEST int NULL,
    TEST_DATE TEXT NOT NULL
);

INSERT INTO TEST (TEST_ID, VEHICLE_ID, TEST_TYPE_ID, CHECK_TYPE_ID, NUM_TEST, TEST_DATE) VALUES (844, 504, 3, 1, 3, '2007-01-01 10:00:00');
Run Code Online (Sandbox Code Playgroud)

然后在Superset中,我收到以下消息:

“ Datetime列未作为零件表配置提供,并且此类型的图表是必需的”

详细说明:

  Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/superset/viz.py", line 234, in get_payload
    df = self.get_df()
  File "/usr/lib/python2.7/site-packages/superset/viz.py", line 78, in get_df
    self.results = self.datasource.query(query_obj)
  File "/usr/lib/python2.7/site-packages/superset/connectors/sqla/models.py", line 538, in query …
Run Code Online (Sandbox Code Playgroud)

sqlite datetime superset

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

将两个mbtiles文件连接在一起

我还没有设法找到一种方法将两个*.mbtiles文件连接在一起(第一个包含0-16的缩放级别和第二个缩放级别17).我正在使用不同的sqlite管理器,但是我没有将我们导出和导入的数据库2导入到database1中,我没有成功 - 二进制字段总是如此严重损坏,以至于无法将image.png恢复.

有没有人知道将两个mbtiles文件连接在一起的简单程序?

sqlite mbtiles

4
推荐指数
2
解决办法
2456
查看次数

如何注册ODBC驱动程序?

我为我的学校项目创建了一个库存系统,我使用SqlLite作为独立的数据库.只要我安装SqlLite ODBC连接(单独的安装程序),我就可以运行它.

但我想要的是创建一个安装程序并在一个安装程序中安装SqlLite ODBC驱动程序和我的项目,而不是运行两个单独的安装程序(我的应用程序和sqlLite ODBC驱动程序安装程序).

知道怎么做吗?或者你有什么建议吗?

到目前为止我做了什么.我将SQLLite ODBC dll复制到我的应用程序文件夹并运行它,但是错误显示没有安装ODBC驱动程序.我没能在32位和64位Windows操作系统上注册SqlLite odbc dll.

database sqlite odbc connector

4
推荐指数
3
解决办法
7199
查看次数