这就是我想要做的:
我有2张桌子......
CREATE TABLE `parent` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `child` (
`parent_id` int(11) DEFAULT NULL,
`related_ids` int(11) DEFAULT NULL,
KEY `parent_id` (`parent_id`),
KEY `related_ids` (`related_ids`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
然后是一个约束:
ALTER TABLE `parent` ADD FOREIGN KEY (`id`) REFERENCES `child` (`parent_id`);
Run Code Online (Sandbox Code Playgroud)
如您所见,表parent具有自动递增的主键"id",该主键也用作子表的外键.
现在我想在父表中插入一条记录,如下所示:
INSERT INTO parent SET DATA="abc";
Run Code Online (Sandbox Code Playgroud)
它失败了,错误:
无法添加或更新子行:外键约束失败(
myschema.parent,CONSTRAINTparent_ibfk_1FOREIGN KEY(id)REFERENCESchild(parent_id))
我知道它失败了,因为它没有在子表中找到引用的记录.如果我开始在子表中创建一个记录,将它的parent_id设置为1,然后重置父表的自动增量计数器(以便下一个插入将具有id = 1),它的工作原理!但那不是解决方案.
如果子表中没有相关的行,我没有看到插入阻塞的效用... …
mysql constraints foreign-keys database-relations auto-increment
我的网站设置方式,我需要手动访问两个URL来触发邮件系统.一个URL编译电子邮件列表,另一个URL将其发送出去.
我想用cronjob自动化这个,但这就是问题所在.我正在使用Kohana框架,我不认为复制粘贴控制器内的代码将起作用.
完成我正在做的最简单的方法是每5分钟左右访问两个URL.是否可以在PHP中"访问"(缺少更好的单词)网站?
我正在尝试让gdb运行带有输入重定向到stdin的程序.例如,没有gdb我会运行这样的程序:
prog < input.txt
Run Code Online (Sandbox Code Playgroud)
现在在gdb中,通常的做法是run < input.txt.但是,它对我不起作用,当这样做时,没有任何东西被重定向到stdin.
我正在使用Windows与MinGW.可能是什么问题呢?
我有两个3GB的文本文件,每个文件有大约8000万行.它们共享99.9%的相同行(文件A有60,000个唯一行,文件B有80,000个唯一行).
如何在两个文件中快速找到这些独特的行?是否有任何现成的命令行工具?我正在使用Python,但我认为找到一个有效的Pythonic方法加载文件并进行比较的可能性较小.
任何建议表示赞赏.
我怎样才能一般地创建一个任意数字类型的零?
这是一个玩具示例:将空数转换为零的函数.
static <T extends Number> T zeroIfNull(T value) {
return value == null ? 0 : value;
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为文字零是类型int,我需要将其转换为类型T.
是否可以这样做?
你能在Windows上用C++创建PNG,GIF等吗?
如果有可能,怎么样?例如,如何使png图像只有一种纯色.
只是一个"你好世界"的例子会很棒......
oracle在处理大型应用程序方面享有良好的声誉,并且可以灵活地扩展到集群环境.为什么每个人都想要NOSQL?
因为nosql db要便宜多少?为什么不开关面向对象的db?
我从源代码安装了python 2.6,后来又错误地从包管理器中安装了另一个python 2.6.
我找不到卸载从源代码构建的python的方法,这可能/容易吗?
运行ubuntu 10.04.
说我有一个名单
var names = new List<string>{"Tom", "Dick", "Harry"};
Run Code Online (Sandbox Code Playgroud)
现在说我想搜索汤姆.
names.Contains("Tom");
Run Code Online (Sandbox Code Playgroud)
不是问题但是我想用不同的外壳说"tOM".
谁能告诉我如何在不创建另一个类的情况下做到这一点?
我有一个解决方案,我有一个继承自的Comparer类IEqualityComparer.
谢谢!
我需要测试以下帮助器:
def display_all_courses
@courses = Course.all
output = ""
for course in @courses do
output << content_tag(:li, :id => course.title.gsub(" ", "-").downcase.strip) do
concat content_tag(:h1, course.title)
concat link_to("Edit", edit_course_path(course))
end
end
return output
end
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法可以测试这个输出.基本上,我只是想测试帮助器给我正确数量的li元素,也许是没有任何课程的情况.
我的第一个想法是做这样的事情:
describe DashboardHelper do
describe display_all_courses do
it "should return an list of all the courses" do
7.times{Factory(:course)
html = helper.display_all_courses
html.should have_selector(:li)
end
end
end
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,如果我将:count选项添加到have_selector调用它突然失败,有人可以帮我弄清楚为什么会这样吗?