标签: sqlite

如何在模型中存储外键列表

大家好,这里的每个人都是我面临同样问题的情况,请看一下:

分类组.py

class DeviceClassificationGroup:
    vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None, null=True)
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=1000)
    classification = ??
Run Code Online (Sandbox Code Playgroud)

分类.py

class DeviceClassification(models.Model):
    vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None, null=True)
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=1000)
    device_type = models.IntegerField()
    device_name_regex = models.CharField(max_length=100)
    vid_pid = models.CharField(max_length=50)
    device_instance_id = models.CharField(max_length=100)
    serial_number = models.CharField(max_length=100)
    brand = models.CharField(max_length=25)

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

所以我会有一组分类,可以放入一个分类组中。

我如何在 django 模型中存储未知数量的外键?

请帮我解决这个问题。

python sqlite django django-rest-framework

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

在 SQLite 数据库中插入数百万行,Python 太慢

对于我的国际象棋引擎,我使用统计数据来选择最佳动作。我从数百万个游戏中收集了它们。我对当前棋步下一步棋以及当前棋步下棋的次数感兴趣。

对于使用 Python 字典并用 pickle 存储它,文件太大,并且很难用新游戏更新。所以我决定使用 SQLite。

我创建了一个类MovesDatabase

class MovesDatabase:

def __init__(self, work_dir):
    self.con = sqlite3.connect(os.path.join(work_dir, "moves.db"))
    self.con.execute('PRAGMA temp_store = MEMORY')
    self.con.execute('PRAGMA synchronous = NORMAL')
    self.con.execute('PRAGMA journal_mode = WAL')
    self.cur = self.con.cursor()

    self.cur.execute("CREATE TABLE IF NOT EXISTS moves("
                     "move TEXT,"
                     "next TEXT,"
                     "count INTEGER DEFAULT 1);")
Run Code Online (Sandbox Code Playgroud)

movenext以字符串格式表示棋盘的状态:FEN。例子:

  • rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPPP/RNBQKBNR
  • r1b1k1nr/p2p1pNp/n2B4/1p1NP2P/6P1/3P1Q2/P1P1K3/q5b1
  • 8/8/8/4p1K1/2k1P3/8/8/8b

下面的方法负责获取游戏文件,提取动作并插入(如果 ( move, next) 是新的),或者更新(如果 ( move, next) 已存在于数据库中:

def insert_moves_from_file(self, file: str):
    print("Extracting moves …
Run Code Online (Sandbox Code Playgroud)

python sqlite chess

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

SQL - 如何从两列中查找唯一值?

我正在使用 SQLite,并且只想获取每个表具有唯一值的行。我知道如何获取每列的值,但无法创建单个(sqlite 兼容)选择来从两列获取唯一值。

这是数据示例:

可乐 列_B
111 第777章
222 第333章
222 111
第444章 第333章
222 第555章
第333章 第666章
第333章 第777章

我从上面的示例中获得的期望结果是具有唯一值的行,其中仅包括:444、555、666。

可乐 列_B
第444章 第333章
222 第555章
第333章 第666章

222 不应出现在结果中,因为它在 col_A 中多次出现。777 不应出现在结果中,因为它在 col_B 中多次出现。我只需要 col_A 或 col_B 中出现一次值。每个表的唯一值,而不是列。

我能走多远:

SELECT * 
    FROM my_table
    WHERE 
        (SELECT col_A as asset from my_table GROUP BY col_A HAVING COUNT(*) = 1
         UNION
        SELECT col_B as asset from my_table GROUP BY col_B HAVING COUNT(*) = 1)
            IN (col_A, col_B)
Run Code Online (Sandbox Code Playgroud)

我尝试过 UNION 和其他一些方法,但无法达到预期的结果。

sql sqlite having

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

如何在本地时间应用 strftime

我想从我的 Sqlite 数据库中的日期时间列中获取月份中的哪一天。我可以简单地使用

select strftime('%d',myColumn) from myTable
Run Code Online (Sandbox Code Playgroud)

但是这些值以 UTC 格式存储在数据库中,我想根据本地时间获取日期。所以我可以执行以下操作来获取本地时间。

select date(myColumn, 'localtime') from myTable
Run Code Online (Sandbox Code Playgroud)

现在我如何一起做这两个操作?我能想到的唯一方法是date()使用strftime(). 还有其他方法吗?

sqlite android-sqlite

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

phpunit testing with sqlite and laravel eloquent

I have a package that uses DB, and I wanted to create some tests that will run with sqlite in memory for the tests.

Now I have this base test class:

use Illuminate\Database\Capsule\Manager;

class TestCaseDb extends \PHPUnit_Framework_TestCase {
    protected $db;
    protected $tbmsg;
    public function setUp()
    {
        parent::setUp(); // //DONT CARE
        League\FactoryMuffin\Facade::getFaker()->unique($reset = true);//DONT CARE
        $this->initDb();
        $this->initTbmsg(); //DONT CARE
    }

    protected function initDb() {
        //confi gfor the sqlite
        $capsule = new Manager();
        $capsule->addConnection([
            'driver'    => 'sqlite',
            'database'  => ':memory:',
            'prefix'    => …
Run Code Online (Sandbox Code Playgroud)

php sqlite phpunit laravel eloquent

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

从 django 模型的日期时间字段中提取所有独特的年份

运行 sqlite3 和 defulte datetime 字段如何在不遍历所有条目的情况下从数据库中提取所有唯一的年/月/日。Distinct 似乎不适用于 sqlite3,如果没有所有日期的缓慢迭代,我想不出另一种方法来做到这一点。

明确地说,我想从数据库中提取所有唯一值,而不是过滤到它们。

python sqlite django datetime

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

SQLite 数据库如何更新主键 id?

假设我有一张桌子 contacts

  id        Name            Contact_No
-----------------------------------------
   1        abc                12345
   2        lmn                56784
   3        pqr                83654
   4        uvw                17637
   5        xyz                98345
Run Code Online (Sandbox Code Playgroud)

如果我从数据库中删除第 3id行,删除的行之后的行是什么?

如果我更新第 4 行,它会被赋予一个新的id还是在更新数据库后第 4 行的 id 将保持不变?

autoincrement和 和有autoincrement not null什么区别?官方文档说它会降低性能并且数据库会运行缓慢。必须和它一起写integer primary key吗?

我已经阅读了许多 stackoverflow 的答案,也阅读了SQLite 官方文档,但我无法理解。

database sqlite android

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

Java.lang.IllegalStateException:尝试重新打开一个已经关闭的?

我的 Sqlite Android 出错了。我有这样的代码:

public int UpdatePhotoUser(String foto_user, int metode) {

        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        int update = 0;

        if (metode == 1) {
            values.put(Variabel.KEY_USER_PHOTO, foto_user);
            try {
                update = db.update(
                        Variabel.TABLE_USER,
                        values, null, null);
            } catch (android.database.sqlite.SQLiteException e) {

            }
        } else if (metode == 2 && getUserDetails(Variabel.KEY_USER_PHOTO).equals(foto_user)) {
            values.put(Variabel.KEY_USER_PHOTO, "");
            try {
                update = db.update(
                        Variabel.TABLE_USER,
                        values, null, null);
            } catch (android.database.sqlite.SQLiteException e) {

            }
        }

        db.close();
        return update;
    }
Run Code Online (Sandbox Code Playgroud)

我在最后一行有错误:

update = …
Run Code Online (Sandbox Code Playgroud)

java sqlite android

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

如何使用 Perl 在 Sqlite 中准备 pragma 语句?

我试图准备一个 pragma 语句:

$sth = $dbh->prepare (q{pragma table_info(?)})
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

DBD::SQLite::db prepare failed: near "?"
Run Code Online (Sandbox Code Playgroud)

准备字符串有什么问题?

sqlite perl prepared-statement dbi

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

Django set_password 没有属性

我正在尝试使用 set_password() 函数,但出现此错误

'Member' object has no attribute 'set_password'
Run Code Online (Sandbox Code Playgroud)

当我使用它时出现。如果我取出 set_password() 函数,密码将存储在数据库中,但不会被散列。

查看.py

user = Member(username=u, password=p, email=e, security=s)
user.set_password(p)
user.save()
Run Code Online (Sandbox Code Playgroud)

模型.py

class Member(models.Model):
    username = models.CharField(max_length=16,primary_key=True)
    password = models.CharField(max_length=16)
    email = models.CharField(max_length=325)
    security = models.CharField(max_length=16)
    profile = models.OneToOneField(Profile, null=True)
    following = models.ManyToManyField("self", symmetrical=False)
    from_member_id = models.CharField(max_length=16)

    def __str__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

python sqlite django

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