这令我感到困惑,希望有人可以提供帮助.
查询:
insert into `shelter_pages` (`userid`,`relid`)
select :userid, `id` from `shelter` where `stage`='egg' order by rand() limit 30
Run Code Online (Sandbox Code Playgroud)
简单吧?获取符合条件的30个随机行,并将其与用户ID一起保存在"页面"表中.
错误:
SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败(`db_name` .shelter_pages`,CONSTRAINT`shelter_pages_ibfk_2` FOREIGN KEY(`relid`)REFERENCES`shelter`(`id `)ON UPETE CASCADE ON UPDATE CASCADE)
那怎么可能呢?它实际上是`shelter`.`id`在SELECT查询中使用这些值并且INSERT它们如何,外键检查如何可能失败?
如果它具有任何重要性,那么所讨论的表格相当"繁忙" - 它是游戏元素的一部分,任何玩家都可以从收容所"采用",从而删除该行.这就像我认为原子操作中的竞争条件一样简单吗?
我正在创建一个 QML 布局,里面有一个Column和多个Rows。第一行包含一个按钮,第二行包含从网络服务中检索到的项目列表。我希望能够做到“拉刷新”就行了,所以我用PullToRefresh的ListView。
但是,这会将可见字符串“Pull to refresh...”添加到行输出的顶部,实际上出现在第一行的顶部附近。这种是有道理的,除了我希望该文本隐藏在第一行下,直到它在第二行中的列表被拉出时滑出。
这是要重现的最小 QML,可以使用以下命令运行qmlscene:
import QtQuick 2.4
import QtQuick.XmlListModel 2.0
import Ubuntu.Components 1.3
MainView {
id: root
width: units.gu(50)
height: units.gu(75)
Column {
Row {
Button {
id: selector
text: "Select"
}
}
Row {
ListView {
id: listOfThings
height: 500
width: 400
model: things
delegate: Text {
text: title + " (" + pubDate + ")"
}
PullToRefresh {
refreshing: things.status …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个宏,它接受一系列变量和一组代码,并确保在执行代码体之后变量恢复为原始值(在Paul Graham的ANSI Common Lisp中练习10.6 ).
但是,我不清楚为什么我的gensym预期会在一个地方进行评估,而不是另一个类似的评估(注意:我知道这个练习有更好的解决方案.我只是想弄清楚为什么评价的差异).
这是第一个定义,其中lstgensym计算到lambda传递给下面的列表mapcar:
(defmacro exec-reset-vars-1 (vars body)
(let ((lst (gensym)))
`(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
vars
:initial-value nil)))
,@body
,@(mapcar #'(lambda (var) `(setf ,var (car ,lst)))
vars))))
Run Code Online (Sandbox Code Playgroud)
虽然它完全按照我的预期工作,但它并不是一个正确的解决方案,因为我总是抓住lst尝试重置值时的第一个元素.我真的想映射2个列表.所以现在我写道:
(defmacro exec-reset-vars-2 (vars body)
(let ((lst (gensym)))
`(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
vars
:initial-value nil)))
,@body
,@(mapcar #'(lambda (var val) `(setf ,var ,val))
vars …Run Code Online (Sandbox Code Playgroud) common-lisp ×1
lisp ×1
listview ×1
macros ×1
mysql ×1
qml ×1
qtquick2 ×1
sql ×1
ubuntu-touch ×1