小编Max*_*ams的帖子

SQL(访问) - 向复合主键添加新字段

我有一个名为table1的表,它有一个使用'ScreenId'和'ActivityItemId'的复合主键.我添加了一个新字段'ProductId',它有一个NOT NULL约束.我想将ProductId添加到复合主键.

我认为这会奏效

db.execute"ALTER TABLE table1 PRIMARY KEY(ScreenId,ActivityItemId,ProductId)"

但我得到一个错误,我认为这种语法只有在创建表时才有效.

任何人都可以帮我解决SQL问题吗?(我不能在这里使用视觉基本解决方案顺便说一下,我实际上是使用ruby接口来运行sql,所以它只需要在SQL中)

谢谢最大

sql ms-access database-design

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

为什么这个递归的jQuery.extend调用不起作用?

我有这个javascript代码,使用jquery.extend:

hash1 = {"/":{"programme-nav":true}};
hash2 = {"/":{"what-is-scheme":true}};
merged = $.extend(hash1, hash2);
deep_merged =  $.extend(true, hash1, hash2);
//expected_deep_merged = {"/":{"programme-nav":true, "what-is-scheme":true}};
console.log("merged = "+JSON.stringify(merged));
// gives {"/":{"what-is-scheme":true}};
console.log("deep_merged = "+JSON.stringify(deep_merged));
// also gives {"/":{"what-is-scheme":true}};
Run Code Online (Sandbox Code Playgroud)

根据API(https://api.jquery.com/jquery.extend/),true作为第一个参数传递将递归合并对象.在这种情况下,我希望在评论中得到结果.但是,我和非深度扩展时的情况相同.

我已经为此设置了一个jsfiddle,输出到控制台,https://jsfiddle.net/0725apqn/2/ ,这样你就可以玩了.

任何人都可以解释我哪里出错了?谢谢,马克斯

编辑:我是个白痴.将true作为第一个参数传递正确进行深度合并,但我没有注意到的是我已经在我的示例的第一部分(我在非深度合并中)覆盖了 hash1,所以当我来做"深度"合并,我实际上是这样做的:

deep_merged =  $.extend(true, {"/":{"what-is-scheme":true}}, {"/":{"what-is-scheme":true}});
Run Code Online (Sandbox Code Playgroud)

大规模的"doh".感谢任何阅读此内容的人.我将尽可能多地奖励,然后删除这个问题.

javascript jquery

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

当其中一个选择器是"窗口"时组合选择器

如果我想检测div上的滚动事件,class="foo"或者id="bar"我可以使用这种语法:

$('div.foo, div#bar').scroll(function(){ ... });
Run Code Online (Sandbox Code Playgroud)

如果我想检测窗口滚动,我会这样做:

$(window).scroll(function(){ ... });
Run Code Online (Sandbox Code Playgroud)

但是我如何指定我想检测scroll窗口上的事件或div元素上的事件class="foo"?我试过这个:

$(window, ".foo").scroll(function(){ ... });
Run Code Online (Sandbox Code Playgroud)

它不会导致任何错误,但它只会侦听上的scroll事件window,这表明它只是忽略了第二个意外的参数.

javascript jquery jquery-selectors

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

删除巨型 MySQL 列的快速方法

今天,当我们的 RDS MySQL 数据库实例上的空间不足时,我们遇到了一些站点紧急情况。这是因为我尝试在拥有 3000 万行的数据库表中填充新添加的 MEDIUMTEXT 列。哎呀。

我认为,使问题变得更加复杂的一件事是,在我意识到是什么导致它耗尽空间并终止了该update进程之后,我试图删除新列,愚蠢地认为这会释放一些空间。

这实际上是行不通的,因为当你在 Mysql 中删除一列时,你不会收回磁盘空间,至少在不做一些额外的清理工作的情况下是这样。

但是,我认为通过增加数据库中临时文件的大小(大概是保存列数据)实际上使事情变得更糟,以使进程可事务化 - 就像一个废纸篓一样,有效地为已删除的数据提供可恢复性。

这使得它的空间更加不足(我通过 AWS 控制台给了它更多的空间)。

所以,这不是一个美好的早晨(早上 7 点我的孩子们也在我耳边尖叫)。

有没有一种方法可以删除一个列,它a)快速,即使对于大型表b)不会产生任何额外的临时数据c)实际上给你一些磁盘空间?

mysql diskspace rds

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

安装nokogiri的问题 - "包libxslt-dev是一个虚拟包"

我正在尝试在ubuntu中安装nokogiri gem.我已按照此页面上的说明操作:http://nokogiri.org/tutorials/installing_nokogiri.html

我已经完成了第一步:

# ruby developer packages
sudo apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8
sudo apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby
Run Code Online (Sandbox Code Playgroud)

但是当我尝试下一步时sudo apt-get install libxslt-dev,我收到此错误:

Package libxslt-dev is a virtual package provided by:
libxslt1-dev 1.1.24-2ubuntu2
You should explicitly select one to install.
E: Package libxslt-dev has no installation candidate
Run Code Online (Sandbox Code Playgroud)

我不知道这意味着什么,或者如何选择一个(一个是什么?).有人可以帮忙吗?

ruby ubuntu gem rubygems nokogiri

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

params [:id]来自rails?

我是Rails的初学者.我现在正在学习使用"Beginning Rails 4"这本书.我想问你关于传递给params方法的'参数'.以下是典型的轨道控制器之一.

class CommentsController < ApplicationController
  before_action :load_article
  def create
    @comment = @article.comments.new(comment_params)
    if @comment.save
      redirect_to @article, notice: 'Thanks for your comment'
    else
      redirect_to @article, alert: 'Unable to add comment'
    end
  end

  def destroy
    @comment = @article.comments.find(params[:id])
    @comment.destroy
    redirect_to @article, notice: 'Comment Deleted'
  end

  private
    def load_article
      @article = Article.find(params[:article_id])
    end

    def comment_params
      params.require(:comment).permit(:name, :email, :body)
    end
  end 
Run Code Online (Sandbox Code Playgroud)

是的,这只是一个典型的评论控制器,用于创建附加到文章的评论.评论模型"属于"文章模型,文章模型"有很多"评论.

看看destroy方法.

def destroy
  @comment = @article.comments.find(params[:id])
  -- snip --
end
Run Code Online (Sandbox Code Playgroud)

它通过find(params [:id])找到与文章相关的评论.我的问题是,params [:id]来自哪里?

它来自URL吗?或者,当创建任何评论记录时,rails会自动保存params散列吗?所以我们可以通过find找到任何评论(params [:id])?

load_article方法类似.

def load_article
  @article = …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails params

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