小编Naw*_*Man的帖子

何时使用"ON UPDATE CASCADE"

我经常使用"ON DELETE CASCADE",但我从不使用"ON UPDATE CASCADE",因为我不太确定在什么情况下它会有用.

为了便于讨论,请看一些代码.

CREATE TABLE parent (
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (id)
);

CREATE TABLE child (
    id INT NOT NULL AUTO_INCREMENT, parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id)
        REFERENCES parent(id)
        ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)

对于"ON DELETE CASCADE",如果id删除了具有a的父级,parent_id = parent.id则将自动删除子级中的记录.这应该没问题.

  1. 这意味着当id更新父级时,"ON UPDATE CASCADE"会做同样的事情吗?

  2. 如果(1)为真,则意味着如果parent.id不可更新(或永远不会更新),则不需要使用"ON UPDATE CASCADE",就像它是AUTO_INCREMENT或者总是设置为TIMESTAMP.是对的吗?

  3. 如果(2)不成立,在其他什么情况下我们应该使用"ON UPDATE CASCADE"?

  4. 如果我(由于某种原因)更新了child.parent_id不存在的内容,它会被自动删除吗?

好吧,我知道,上面的一些问题可以通过程序测试来理解,但我也想知道这是否依赖于数据库供应商.

请说清楚.

sql foreign-keys foreign-key-relationship

407
推荐指数
6
解决办法
30万
查看次数

JavaScript/jQuery检查断开的链接

我开发了一个小的Javascript/jQuery程序来访问内部使用的pdf文件集合.如果文件确实存在,我希望突出显示pdf文件的信息div.

有没有办法以编程方式确定文件的链接是否被破坏?如果是这样,怎么样?

任何指南或建议都是适当的.

javascript jquery broken-links

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

不同体系结构中C的int大小

我知道C语言的规范并没有规定每个整数类型的确切大小(例如int).

我想知道的是:C(不是C++)中是否有一种方法来定义具有特定大小的整数类型,以确保它在不同的体系结构中是相同的?喜欢:

typedef int8 <an integer with 8 bits>
typedef int16 <an integer with 16 bits>
Run Code Online (Sandbox Code Playgroud)

或者任何其他允许程序的其他部分在不同体系结构上编译的方式.

c types integer cross-platform

10
推荐指数
3
解决办法
5215
查看次数

如何解析HTML中的文本

如何使用java使用jsoup解析网页中的文本?

java jsoup

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

跨平台VM的C内存管理

我问一个问题,关于C型尺寸,我得到一个很好的答案,但我意识到,我可能不会制定这个问题非常好是我的目的.

我的背景来自计算机工程师,然后转到软件工程师,所以我喜欢计算机架构,并且总是考虑制作VM.我刚刚完成了一个有趣的Java项目,我很自豪.但是有些法律问题我现在无法开源,而且我现在有空闲时间.所以我想看看我是否可以在C上制作另一个VM(速度更快),只是为了娱乐和教育.

事情是,我上次写一篇非琐事C问题时,我不是一个C程序,这是10多年前的事了.我是Pascal,Delphi,现在是Java和PHP程序员.

我可以预见有很多障碍,我正试图解决一个问题,那就是访问现有的库(在Java中,反射解决了这个问题).

我计划通过拥有一个数据缓冲区(类似于堆栈)来解决这个问题.我的VM客户端可以编程将数据放入这些堆栈,然后再指向本机函数.

int main(void) {
    // Prepare stack
    int   aStackSize = 1024*4;
    char *aStackData = malloc(aStackSize);

    // Initialise stack
    VMStack aStack;
    VMStack_Initialize(&aStack, (char *)aStackData, aStackSize);

    // Push in the parameters
    char *Params = VMStack_CurrentPointer(&aStack);
    VMStack_Push_int   (&aStack, 10  ); // Push an int
    VMStack_Push_double(&aStack, 15.3); // Push a double

    // Prepare space for the expected return
    char *Result = VMStack_CurrentPointer(&aStack);
    VMStack_Push_double(&aStack, 0.0); // Push an empty double for result

    // Execute
    void (*NativeFunction)(char*, char*) = &Plus; …
Run Code Online (Sandbox Code Playgroud)

c memory-management cross-platform low-level vm-implementation

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

Bash:变量值中的空格稍后用作参数

在编写bash脚本时,使用Imagick的命令帮助创建宝丽来缩略图convert.我遇到了一个问题.虽然,我设法解决这个问题(实际上,因为convert足够灵活),我仍然想知道如何在没有这种具体解决方法的情况下解决这个问题.

所以基本上,bash脚本将获得可能包含空格的标题值.我想使用该标题作为参数convert.如果标题为空(''),我将不会对convert命令使用'-caption'选项.像这样:

CAPTION="Is this Cute?" # The actual value will be tacked from the parameter of this bash.
IN_FILE="resources/puppy.png"
OUTFILE="resources/puppy_polaroid.png"

# If CAPTION is not empty, reformat CAPTION
if [ "$CAPTION" != "" ]; then CAPTION="-caption \"$CAPTION\""; fi
# otherwise, do not use '-caption' add all

COMMAND="convert $CAPTION \"$IN_FILE\" \"$OUTFILE\""
echo "Command: $COMMAND" #This echo a value command
`$COMMAND`
Run Code Online (Sandbox Code Playgroud)

echo回显了可以复制的value命令,可以粘贴到终端并运行.但是bash没有运行.我怎么能这样做?

注意:如果是convert,-caption ""请完成工作.我知道这一点,目前正在使用它作为解决方法.

在此先感谢您的帮助.

编辑:从答案,这里是现在适合我的代码.

... # Get CAPTION …
Run Code Online (Sandbox Code Playgroud)

bash

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

GeoIP和$ _SERVER ['REMOTE_ADDR']的准确度如何?

我为我的女朋友建了一个网站,她最近想知道谁在访问她的网站.所以我使用MindMax数据库,我得到了按国家/地区访问的列表和计数.

但是,在对其进行监控几天之后,我们惊讶地发现,某些国家/地区的访问权限是网站所针对的.当然,这并不意味着我认为来自这些国家的人们不可能感兴趣,但这只会引起准确性问题.那么GeoIP和$_SERVER['REMOTE_ADDR'](用于查找)的准确度如何?

我并不关心那些故意隐藏或伪造他们的知识产权的人.我只是更想知道是否有可能无意中使这种不准确的事情(例如,路由).

php geoip

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

PYTHONPATH和PHP

我有一个调用python脚本的PHP脚本(我无法编辑其他人)。在CLI上可以正常运行,但是一旦我以CGI身份运行,它就会失败,并显示错误“ bzr:错误:无法导入bzrlib和依赖项”。

我猜想它与PYTHONPATH有关,所以我回声了它,发现在Apache环境中它是空的。

我尝试将其设置为“ .htaccess”(位于Dreamhost上,因此无法设置httpd.conf)为:

SetEnv PYTHONPATH "/home/nawaman/lib/python"
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。

我该怎么办?在此先感谢您的帮助。

php environment-variables pythonpath

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

试图了解BZR存储库

我使用Bazaar,我喜欢它.通常,我只是创建不同的分支并分别管理它们.我刚刚发现所有这些分支都可以放入存储库.如果我理解正确,这应该节省内存并提高速度,因为分支之间的一些共同祖先是共享的.Q1:我理解这一点吗?

另一件事是,当我尝试使用它时,我发现了一些我真的不明白的问题.这就是我的尝试方式.

bzr init-repo --trees TestBzrRepo
cd TestBzrRepo
bzr init trunk
mkdir branches
cd branches

bzr branch ../trunk b01-Add-file2-f
echo 'This is file 2' > file2.f
bzr add file2.f
bzr commit -m "Add file 2"

cd ../../trunk
echo 'This is file 1' > file1.f
bzr add file1.f
bzr commit -m "Add file 1"

cd ../branches/b01-Add-file2-f
Run Code Online (Sandbox Code Playgroud)

从现在开始,如果我这样做bzr pull ../../trunk,我得到:

bzr: ERROR: These branches have diverged. Use the missing command to see how.
Use the merge command to reconcile them.
Run Code Online (Sandbox Code Playgroud)

如果我这样做bzr …

bazaar

4
推荐指数
2
解决办法
3933
查看次数

使用Sed删除前导和尾随空格的问题

我使用以下代码从文件A.txt的所有行中删除前导和尾随空格

sed 's/^[ \t]*//;s/[ \t]*$//' ./A.txt > ./B.txt
Run Code Online (Sandbox Code Playgroud)

问题出现在开头或结尾有的位置.所以说例如,以字符串"timezone"开头的原始行变为"imezone"

你能告诉我这里发生了什么吗?如果有一个已知的问题解决方案.

提前致谢.

regex unix linux pattern-matching matching

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

英国电话号码的正则表达式

我希望VB.NET正则表达式为以下格式

7966-591739

我的意思是用户必须首先输入4个 数字字符,然后输入" - ",然后输入6个数字字符,然后输入数字字符.在我的情况下,用户也可以输入

7966-591739 562

7966-591739 x 434

请指教!

regex vb.net

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

帮助理解C Stack

我试图了解C中的低级内存管理器,特别是Stack.据我所知,当一个函数被调用时,一个返回地址被推入堆栈.然后是局部变量.

所以我写了一个小程序来调查这个.这是我的计划:

#include <stdio.h>

void TestStack();

void DoTestStack() {
    char x1 = 1;
    char x2 = 2;
    char x3 = 3;
    char x4 = 4;
    char *x = &x4;

    printf("TestStack: %08X\n", (&TestStack));
    printf("\n");

    int i;
    x = &x4;
    for(i = 0; i < 32; i++)
        printf("%02d: %08X : %08X\n", i, *(x + i), *(x - i));

    printf("\n");
    printf("x1: %02X\n", x1);
    printf("x2: %02X\n", x2);
    printf("x3: %02X\n", x3);

    printf("DONE!!!\n");
}

void TestStack() {
    DoTestStack();
}

void main() {
    TestStack() ;
}
Run Code Online (Sandbox Code Playgroud)

基本上,它调查位置x4之前和之后的所有内存.这应该很好地覆盖了返回地址的位置. …

c memory-management low-level

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

添加背景图像时输入边框更改

当我向输入添加背景图像时,它的边框也发生了变化。

在此处输入图片说明

所以现在我的按钮看起来与其他按钮不同。

我怎样才能让它们看起来一样?

这是这个问题的 JsFriddle

http://jsfiddle.net/apLm5rgq/1/

但基本上是

<input id='one'  value='One'/>
<br/>
<input id='two'  value='Two'/>
Run Code Online (Sandbox Code Playgroud)

<input id='one'  value='One'/>
<br/>
<input id='two'  value='Two'/>
Run Code Online (Sandbox Code Playgroud)

提前谢谢大家。

html css

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