我经常看到它声明应该避免使用规则并使用触发器.我可以看到规则系统中的危险,但当然有规则的有效用途,对吧?这些是什么?
我出于一般兴趣而对此提出这个问题; 我对数据库不太熟悉.
例如,在过去我需要锁定某些数据,所以我做了类似这样的事情:
CREATE OR REPLACE RULE protect_data AS
ON UPDATE TO exampletable -- another similar rule for DELETE
WHERE OLD.type = 'protected'
DO INSTEAD NOTHING;
Run Code Online (Sandbox Code Playgroud)
然后,如果我想编辑受保护的数据:
START TRANSACTION;
ALTER TABLE exampletable DISABLE RULE protect_data;
-- edit data as I like
ALTER TABLE exampletable ENABLE RULE protect_data;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
我同意这是hacky,但在这种情况下我无法更改访问数据库的应用程序(甚至在它上面抛出错误).所以奖励积分查找原因,这是一个危险的/无效的使用规则系统的,但不是为什么,这是不好的设计.
我正在尝试学习Python的细节,我发现了try-else语句.
try1_stmt ::= "try" ":" suite
("except" [expression [("as" | ",") target]] ":" suite)+
["else" ":" suite]
["finally" ":" suite]
Run Code Online (Sandbox Code Playgroud)
如果控制流出try子句的末尾,则执行可选的else子句.else子句中的异常不由前面的except子句处理.
我想不出这会有用的情况.通常,将代码放在try块的末尾或else块中没有实际区别.
该else条款适用于什么?它是否用在一些真实世界的代码中?
我正在开发Visual Studio 2012和2013年的另一个开发人员.当我们在git上共享代码时,每个Visual Studio版本都会根据自己的喜好更改.sln标头.几乎每次提交我们都会得到这样的变化:
@@ -1,8 +1,6 @@
<U+FEFF>
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30110.0
-MinimumVisualStudioVersion = 10.0.40219.1
+# Visual Studio 2012
Run Code Online (Sandbox Code Playgroud)
有没有办法避免这种情况,除了手动检查.sln的更改,只提交它们是否相关?
请注意,将解决方案文件添加到.gitignore是一个坏主意,因为有效的更改并不常见.
我是Highcharts的新手,到目前为止看起来很棒.但是,我需要将我的六个系列分组为图例中的三列.这可以通过限制图例宽度和使用来实现legendIndex.Coffeescript中的Config片段:
legend:
# 3 items side-by-side with some margins
itemWidth: Math.floor(config.width / 3.8)
series: [
# top left
legendIndex: 1
...
,
# bottom left
legendIndex: 4
...
... # 4 more series; other columns in indices 2,5 and 3,6
]
Run Code Online (Sandbox Code Playgroud)
问题是,我还需要为每个组分别设置一个标题.这样的东西(ascii art):
Title A Title B Title C
[ ] Item A1 [ ] Item B1 [ ] Item C1
[ ] Item A2 [ ] Item B2 [ ] Item C2
Run Code Online (Sandbox Code Playgroud)
请注意,我也需要导出功能,因此我无法理解HTML定位.我怎样才能让我的传奇看起来像这样?
database ×1
git ×1
highcharts ×1
legend ×1
postgresql ×1
python ×1
rules ×1
solution ×1
triggers ×1
try-catch ×1