大家好,这里的每个人都是我面临同样问题的情况,请看一下:
分类组.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 字典并用 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)
move并next以字符串格式表示棋盘的状态:FEN。例子:
下面的方法负责获取游戏文件,提取动作并插入(如果 ( move, next) 是新的),或者更新(如果 ( move, next) 已存在于数据库中:
def insert_moves_from_file(self, file: str):
print("Extracting moves …Run Code Online (Sandbox Code Playgroud) 我正在使用 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 和其他一些方法,但无法达到预期的结果。
我想从我的 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(). 还有其他方法吗?
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) 运行 sqlite3 和 defulte datetime 字段如何在不遍历所有条目的情况下从数据库中提取所有唯一的年/月/日。Distinct 似乎不适用于 sqlite3,如果没有所有日期的缓慢迭代,我想不出另一种方法来做到这一点。
明确地说,我想从数据库中提取所有唯一值,而不是过滤到它们。
假设我有一张桌子 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 官方文档,但我无法理解。
我的 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) 我试图准备一个 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)
准备字符串有什么问题?
我正在尝试使用 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)