小编ada*_*mek的帖子

我应该如何在SQLalchemy和SQLite中处理小数

当我使用带有SQLite数据库引擎的数值列时,SQLalchemy会给出以下警告.

SAWarning:Dialect sqlite + pysqlite本身支持Decimal对象

我正在尝试找出pkgPrice = Column(Numeric(12,2))在SQLalchemy中使用SQLite时最好的方法.

这个问题[1] 如何将Python十进制转换为SQLite数字?显示了一种使用sqlite3.register_adapter(D, adapt_decimal)SQLite接收和返回Decimal的方法,但存储了Strings,但我不知道如何深入研究SQLAlchemy核心来做到这一点.类型装饰器看起来是正确的方法,但我还没有搞定它们.

有没有人在SQLAlchemy模型中有一个SQLAlchemy Type装饰器配方,它将具有数字或十进制数字,但是在SQLite中将它们存储为字符串?

sqlite sqlalchemy decimal type-conversion

22
推荐指数
3
解决办法
2万
查看次数

无法在 SwiftUI 中两次选择同一行

我有一个包含多个部分和行的导航列表。我选择一行 foo,它导航到我想要的视图。但是,当我返回根视图时,无法选择行 foo。我点击行 foo 并没有任何反应。

我点击行栏,该行将我发送到它的视图。回到根视图。然后我无法选择行栏,但现在行 foo 有效。

这是 SwiftUI 中的错误还是设计行为?当我离开视图时,我需要做些什么来重置视图?

NavigationView {
            List {
Section(header: shoppingListData.lastItemSection.sectionHeader, footer: shoppingListData.lastItemSection.sectionFooter) {
            ForEach(0..<shoppingListData.lastItemSection.sectionRows.count) { index in
                ShoppingItemRow(shoppingListData: self.shoppingListData,
                                rowItem: self.shoppingListData.lastItemSection.sectionRows[index])
            }
        }
}
}
Run Code Online (Sandbox Code Playgroud)

这是另一个具有相同问题的案例。我只能选择表单的选择器行一次。如果我回到根视图,然后又回到这个视图,我可以再次选择选择器。

如果我将pickerStyle 设置为SegmentedPickerStyle(),我可以多次选择它。

struct ShoppingItemPage: View {
    @ObservedObject var shoppingListData: ShoppingListData
    @ObservedObject var shoppingItem: ShoppingItems
    var body: some View {
        Form {
            Section(header: Text("Packages")) {
                HStack {
                    Text("Quantity (\(shoppingItem.myUnit.myName))")

                    TextField("Quantity (\(shoppingItem.myUnit.myName))", value: $shoppingItem.stdQty, formatter: basicFormat)
                        .textFieldStyle(RoundedBorderTextFieldStyle())
                        .keyboardType(.numbersAndPunctuation)

                    Toggle("Need", isOn: $shoppingItem.needed)
                }
                HStack {
                    Text("Item Name")
                    TextField("Item Name", text: …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-list

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

如何在PostgreSQL触发器函数中获取表名?

我有一个触发功能:

CREATE OR REPLACE FUNCTION "trigger_deleteUsers"()
RETURNS trigger AS
$BODY$
BEGIN
    INSERT INTO "DeletedEntities" ("uuidKey", "dateCreated", "dateModified", "dateSynced", "username", "entityName")
         VALUES (OLD."uuidKey", OLD."dateCreated", OLD."dateModified", "dateSynced", OLD."username", 'Users');
    RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql;

CREATE TRIGGER "deleteUsers" AFTER DELETE ON "Users" FOR EACH ROW EXECUTE PROCEDURE "trigger_deleteUsers"();
Run Code Online (Sandbox Code Playgroud)

这适用于"用户"表.每当我从"Users"表中删除一行时,数据库就会在"DeletedEntities"表中插入一行("uuidKey","dateCreated","dateModified","dateSynced","username","entityName").我稍后会用于同步目的.

以上工作.这是我的问题,我有大约二十几个表.我知道我需要在每个表上创建TRIGGER,但我不想为每个表创建自定义触发器函数.从上面的第一个函数改变的唯一的东西是函数内INSERT语句中的最后一个值; 而不是'用户',它将是"Ledgers",或"Journal",或其他什么.

在PostgreSQL触发器函数中,如何获取OLD行所属的表的名称?

postgresql synchronization triggers

15
推荐指数
2
解决办法
1万
查看次数

PostgreSQL UUID类型的性能

我不是要重新启动UUID vs串行整数键辩论.我知道任何一方都有有效的观点.我在我的几个表中使用UUID作为主键.

  • 列类型: "uuidKey" text NOT NULL
  • 指数: CREATE UNIQUE INDEX grand_pkey ON grand USING btree ("uuidKey")
  • 主键约束: ADD CONSTRAINT grand_pkey PRIMARY KEY ("uuidKey");

这是我的第一个问题; 使用PostgreSQL 9.4将列类型设置为UUID有什么性能优势?

文档 http://www.postgresql.org/docs/9.4/static/datatype-uuid.html 描述了UUID,但使用此类型而不是text类型的类型安全是否有任何好处?在字符类型文档中,它表明在PostgreSQL中char(n)没有任何优势text.

提示:这三种类型之间没有性能差异,除了使用空白填充类型时增加的存储空间,以及一些额外的CPU周期来检查存储到长度受限列中的长度.虽然character(n)在其他一些数据库系统中具有性能优势,但PostgreSQL没有这样的优势; 事实上,由于额外的存储成本,字符(n)通常是三者中最慢的.在大多数情况下,应该使用文本或字符变化.

我并不担心磁盘空间,我只是想知道我是否值得花时间对UUID和文本列类型进行基准测试?

第二个问题,哈希与b树索引.在排序UUID键时没有意义,因此b-tree与哈希索引相比还有其他优势吗?

postgresql indexing hash uuid

12
推荐指数
2
解决办法
7374
查看次数

是否可以通过 CloudKit Dashboard 导入批量数据?

我了解了如何在 CloudKit 仪表板中创建记录类型并一次添加一个记录。我想尝试添加几百条记录进行测试。有没有办法将 CSV 或 JSON 文件导入仪表板?

json cloudkit cloudkit-web-services

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

Core Data Saving仪器中"保存持续时间"的单位是多少?

在XCode Instruments应用程序中,有一个Core Data Saving仪器.它可以显示每个Core Data保存的"保存持续时间".它用于保存持续时间的单位是多少?由于没有人类可察觉的滞后时间,我看到读数从67到6343不等.

这是微秒,与处理器周期有关的东西,还是仪器采样时间的倍数?

xcode core-data xcode-instruments

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

使用 UUID 的现代核心数据性能

我有一个核心数据应用程序:

  • 549 个具有 myJournals 关系的帐户实体(一对多)
  • 24000 个具有 myJournals 关系的账本实体(一对多)
  • 57000 个具有 myAccount 和 myLedger(一对一)反向关系的日记帐实体

每个实体都有一个带有从在线数据库导入的 UUID 字符串的 uuidKey 字符串属性。

我正在尝试在 iPhone 5S 上运行该应用程序。插入对象相对较快,但查找和链接关系的时间比预期的要长。

let debugTime = NSDate()
let thisRequest = NSFetchRequest(entityName: "Ledgers")
let keyLeft = NSExpression(forKeyPath: "uuidKey")
let keyRight = NSExpression(forConstantValue: ledgerKey)
let keyPredicate = NSComparisonPredicate(leftExpression: keyLeft, rightExpression: keyRight, modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.EqualToPredicateOperatorType, options: NSComparisonPredicateOptions.allZeros)
thisRequest.predicate = keyPredicate
thisRequest.fetchBatchSize = 1
thisRequest.fetchLimit = 1
println("DEBUG COMMENT: \(debugTime.timeIntervalSinceNow) time to create thisRequest.")
var keyError: NSError? = nil
if let keyArray = …
Run Code Online (Sandbox Code Playgroud)

iphone uuid core-data ios swift

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

NSJSONSerialization可以处理null吗?

我有一个JSON提要:

{
    "createEntities": [
        {
            "username": "hackImport",
            "deleted": false,
            "myName": "Stocks",
            "dateSynced": "2012-07-05T12:00:00-04:00",
            "uuidKey": "132256ef-1e94-483f-a87d-35caeee636db",
            "dateModified": "2012-04-13T08:06:17.077971-04:00",
            "sortKey": 5,
            "dateCreated": "2012-04-13T08:06:17.077971-04:00"
        },
        {
            "username": "hackImport",
            "deleted": false,
            "myName": "Foreign Currency",
            "dateSynced": "2012-07-05T12:00:00-04:00",
            "uuidKey": "43510d43-f17a-4d06-9138-0a304b9f09ff",
            "dateModified": "2012-04-13T08:06:17.077971-04:00",
            "sortKey": 2,
            "dateCreated": "2012-04-13T08:06:17.077971-04:00"
        },
        {
            "username": "adamek",
            "deleted": false,
            "myName": "Real Estate",
            "dateSynced": "2012-07-05T12:00:00-04:00",
            "uuidKey": "57a365e0-fa9c-4e47-b77b-5a3f23d3dbee",
            "dateModified": "2012-04-22T14:33:43.464506-04:00",
            "sortKey": 3,
            "dateCreated": "2012-04-13T08:06:17.077971-04:00"
        },
        {
            "username": "adamek",
            "deleted": false,
            "myName": "Mutual Funds",
            "dateSynced": "2012-07-05T12:00:00-04:00",
            "uuidKey": "8bd3f71c-9255-4505-87f7-a48a2665d366",
            "dateModified": "2012-05-01T19:28:15.897377-04:00",
            "sortKey": 7,
            "dateCreated": "2012-04-13T08:06:17.077971-04:00"
        },
        { …
Run Code Online (Sandbox Code Playgroud)

null json ios nsjsonserialization

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

如何将sqlite.swift语句打印为SQL?

我正在尝试调试一些sqlite.swift语句,这些语句未提供预期的结果。

该文档在注释中显示了SQL示例。

for user in try db.prepare(users.select(id, email)) {
    print("id: \(user[id]), email: \(user[email])")
    // id: 1, email: alice@mac.com
}
// SELECT "id", "email" FROM "users"
Run Code Online (Sandbox Code Playgroud)

如何获得打印该SQL的语句?

print("\(users.select(id, email))")没有给我SQL。我是否忽略了文档中的内容?

sql swift sqlite.swift

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