我有一个表,其中需要有一个递增的 _id 列。但是,由于表有 3 个主键,我无法使用自动增量。顺便说一句,这是在 SQLite 中。该表已经填充了数据,因此我不能重新创建该表。
有没有办法在 _id 列中插入 1 到 148 之间的值?
我们已经尝试过这样的事情:
UPDATE table1
SET _id = (SELECT _id FROM table2)
Run Code Online (Sandbox Code Playgroud)
table2 是一个临时表,其中包含从 1 到 148 的值。但这只是将所有 _id 值更新为“1”。
关于如何解决这个问题有什么建议吗?
是否有一种等效的方法来连接到 postgres 数据库,就像 sqlite 使用 python 连接到数据库一样?
例如,在 sqlite 中,连接将由 定义conn = sqlite3.connect(curruser.dbname)。postgres 的类似连接语法是什么?
对数据库模式相当陌生(计划使用 SQLite)。话虽如此,我正在考虑使用代理键,因为数据库当前包含一个复合键(3 列),它出现在我的大多数表中。我有几个表,其中包含 3 列唯一键和一列包含一些信息;我还有一张表包含 3 列用于唯一键,以及相同的 3 列作为外键(许多父项)。将所有这些表组合成一个表似乎没有意义,因为会有很多空字段。
如果我选择其中之一,会不会掉坑?一般认为哪一种编程更方便?
先感谢您。
我有下表:
CREATE TABLE IF NOT EXISTS TEST_TABLE ( testID INTEGER PRIMARY KEY AUTOINCREMENT, testName TEXT);
部分测试数据
我的查询
SELECT * FROM TEST_TABLE ORDER BY testName
回复:
预期的:
有人可以解释为什么这是这样的回应吗?
这是我的要求:
我有 2 张桌子,orders并且orderContents. 对于orders表中的每一行,都有一定数量的行包含订单描述。id列用作外键。
我想要的是获取每个订单的所有详细信息(来自 的详细信息orderContents,包括表id中的列orders)表,但不限制。基于公共列(外键,id)的结果
问题是它限制了orderContents行,而不是限制了order行。
怎样才能达到想要的效果呢?
编辑:更新表和所需的结果集
订单表:

订单内容表:

将记录数量限制为 2 的期望结果:

我的应用程序使用 SQLite 数据库来存储数据。理想情况下,该数据库应该驻留在某个网络驱动器上,我们将其命名为 Z:(Windows XP 的“映射网络驱动器”功能)。
应用程序在Linux下开发,数据库本地存储。这是一个模块的一部分:
import sqlite3 as lite
con = lite.connect("base.db")
Run Code Online (Sandbox Code Playgroud)
访问 Z: 驱动器上的数据库的正确方法是什么?大致如下:
import sqlite3 as lite
import os
path = 'Z:\'
con = lite.connect(path+"base.db")
Run Code Online (Sandbox Code Playgroud) String ans1= "Apple";
myDb.execSQL("INSERT INTO " +
TABLE_NAME + " Values (ans1);");
Run Code Online (Sandbox Code Playgroud)
它只是这样行不通......为什么?我需要一个简单的方法来做到这一点,我不想使用让像我这样的初学者感到困惑的类,可能吗?
我在示例 Rails 应用程序中使用 sqlite db。从我的用户表中,我已使用 清除了所有记录User.delete_all。但现在每当我使用 向表中插入新记录时User.create,id 的起始值都会比表中最后一条记录的 id 大 1。例如,如果我的表有 5 条记录,并且我清除了所有记录,那么当我执行 User.create 时,它从 id 6 开始。有什么方法可以使 id 再次从 1 开始吗?
谢谢
<?php
/**
* Simple example of extending the SQLite3 class and changing the __construct
* parameters, then using the open method to initialize the DB.
*/
class MyDB extends SQLite3
{
function __construct()
{
$this->open('wifin.db');
}
}
$db = new MyDB();
$mac = 'test';
$ssid = $_POST['ssid'];
$lat = $_POST['lat'];
$lon = $_POST['lon'];
$db->exec("INSERT INTO wifinTb (mac,ssid,lat,lon) VALUES ($mac,$ssid,$lat,$lon)");
$result = $db->query('SELECT * FROM wifinTb WHERE mac=$mac');
var_dump($result->fetchArray());
?>
Run Code Online (Sandbox Code Playgroud)
我不知道如何在php5中使用变量,$mac应该是一个字符串,当我直接使用时mac=$mac,它返回bool(false),这意味着找不到,但是当我使用时mac='test',它给了我结果。
我有以下要求:使用 .xml 文件中的数据创建并填充 SQLite 数据库,该文件可以随时具有不同的结构,因此我无法使用NSManagedObjectModelXcode 创建它,它必须在运行时创建。我已成功NSManagedObjectModel以编程方式创建了一个,创建了持久存储并使用 .xml 中的数据填充了 sqlite 文件。但是,下次我使用该应用程序时,持久存储与不兼容NSManagedObjectModel(我不想每次运行该应用程序时都重新创建模型,只是第一次)。有什么方法可以保存我以编程方式创建的模型并在下次需要时加载它?我在示例中看到的只是从NSBundle.
sqlite ×10
sql ×4
android ×2
python ×2
activerecord ×1
core-data ×1
database ×1
ios ×1
php ×1
postgresql ×1
sql-update ×1