标签: composite-key

在 MySQL 中查找重复行(复合键)

我有一个包含以下格式行的表格:

transactionDate, purchaseOrderId
8/8/2012, 55
8/9/2012, 55
8/8/2012, 88
8/9/2012, 55
8/10/2012, 77
Run Code Online (Sandbox Code Playgroud)

我想找到 transactionDate 和 purchaseOrderId 都准确的所有行。所以以下两行是重复的:

8/9/2012, 55
8/9/2012, 55
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下查询:

SELECT
    transactionDate, purchaseOrderId
FROM
    purchases
GROUP BY
    transactionDate, purchaseOrderId
HAVING COUNT(*) > 1;
Run Code Online (Sandbox Code Playgroud)

但是,除了 8 月 9 日的结果之外,它还返回了 8 月 8 日的结果。如何使它只返回两列重复的字段(而不是返回每个日期的所有交易)?

谢谢。

mysql select key composite-key

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

在休眠中加入复合主键的某个属性

我正在使用休眠,并且我有两个表(遗留的,它们无法重组),如下所示

表A

@Entity
@Table(name = "tableA")
public Class TableA implements Serializable {
    @EmbeddedId private TableAId tableAId;

    @OneToOne(mappedBy = "tableA")
    private TableB tableB;

    // getters, setters, hashCode and equals ommited
}
Run Code Online (Sandbox Code Playgroud)

表A的复合ID

@Embeddable
public class TableAId implements Serializable {
    protected int id1;
    protected String id2;
    protected int id3;
    // getters, setters, hashCode and equals ommited
}
Run Code Online (Sandbox Code Playgroud)

表B

@Entity
public class TableB implements Serializable {
    @OneToOne
    @JoinColumn(name = "tableB", referencedColumnName = "id3")
    protected TableA tableA;
    // getters, setters, hashCode and equals ommited …
Run Code Online (Sandbox Code Playgroud)

java persistence hibernate jpa composite-key

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

该sql是否命中MySql复合索引?

我有一张表:student_homework,其复合索引之一是uk_sid_lsnid_version(student_id, lesson_id, curriculum_version, type)

student_homework    0   uk_sid_lsnid_version    1   student_id  A   100             BTREE       
student_homework    0   uk_sid_lsnid_version    2   lesson_id   A   100             BTREE       
student_homework    0   uk_sid_lsnid_version    3   curriculum_version  A   100             BTREE       
student_homework    0   uk_sid_lsnid_version    4   type    A   100             BTREE   
Run Code Online (Sandbox Code Playgroud)

现在我有一个 Sql: select * from student_homework where student_id=100 and type=1结果explain如下:

1   SIMPLE  student_homework        ref uk_sid_lsnid_version,idx_student_id_update_time uk_sid_lsnid_version    4   const   20  10.0    Using index condition
Run Code Online (Sandbox Code Playgroud)

执行计划是uk_sid_lsnid_version

我的问题是查询条件type在这里如何工作?数据库引擎是否扫描所有(缩小的)记录?根据我的理解,树形层次结构是:

              student_id 
               /       \
           lesson_id     lesson_id
            /                      \  
     curriculum_version          curriculum_version
       / …
Run Code Online (Sandbox Code Playgroud)

mysql composite-key query-performance

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

为什么Rails的composite_primary_keys gem不起作用?

我按照这里的说明,通过安装composite_primary_keys gem

sudo gem install composite_primary_keys
Run Code Online (Sandbox Code Playgroud)

这工作得很好.现在,当我将以下内容添加到我的模型中时

set_primary_keys :user_id, :group_id
Run Code Online (Sandbox Code Playgroud)

我明白了

undefined method `set_primary_keys' for #<Class:0x1043bfe20>
Run Code Online (Sandbox Code Playgroud)

此外,如此处所述,迁移中使用多个主键无效.

任何想法为什么这可能不起作用以及如何使其工作?

注:我没有想为什么我不应该使用组合键来讲话-我已经下定了决心,只是希望得到这个工作.谢谢!

rubygems ruby-on-rails composite-key

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

实体框架CTP4和复合键

我正在玩EntityFramework CTP4并决定将它应用于我当前的一个项目.该应用程序使用SQLServer数据库,并且有一个表具有复合键.比如,表"MyEntity"将"Key1"和"Key2"作为外键(单独)和复合主键.

我创建了一个从EntityConfiguration派生的配置类:

class MyEntityConfiguration : EntityConfiguration<MyEntity>
{
    public MyEntityConfiguration()
    {
        HasKey(m => m.Key1);
        HasKey(m => m.Key2);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的DataContext(从DbContext派生):

    public DbSet<MyEntity> MyEntities { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new MyEntityConfiguration());
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当我查询"MyEntities"的所有记录时:

var entities = from e in MyModel.Instance.MyEntities
               select e;
Run Code Online (Sandbox Code Playgroud)

我得到一个非常奇怪的结果,包括重复18次的第一个记录,然后第二个重复18次(记录,我的表有36个记录).

我怀疑问题在于复合键,因为没有其他实体显示此问题.

任何帮助将不胜感激,谢谢:)

c# composite-key entity-framework-4

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

SQL UPDATE具有复合主键的表中的所有行(除了某些行)

我正在努力学习SQL语句.

我想在具有复合主键的表中更新除某些行之外的所有行.

这就是我现在所做的:

UPDATE Products SET Active = 0
Run Code Online (Sandbox Code Playgroud)

_

UPDATE Products SET Active = 1
WHERE (Id_A = 1 AND Id_B = 1 AND Id_C = 1) OR
      (Id_A = 1 AND Id_B = 2 AND Id_C = 1) OR
      (Id_A = 5 AND Id_B = 8 AND Id_C = 3) OR
       .
       .
       .
       etc
Run Code Online (Sandbox Code Playgroud)

这有效,但我不喜欢它.我希望能够一次性去做.

有没有办法在SQL中执行此操作?

sql composite-key except

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

如何在MySQL数据库中创建复合键

我正在使用mysql server.where我创建了一个名为question的表.这个表的列/属性是(课程,主题,年份,问题)我想创建一个主键(或复合键)由(课程+主题+年)组成.即对于特定的课程+主题+年组合,只能有一个问题.只有一行与(课程+主题+年)的组合,创建另一行是不可能的.我做到了:

primary key(course,subject,year);
Run Code Online (Sandbox Code Playgroud)

但它不工作.我可以创建两行,当然,主题,年份相同的组合.

任何人都可以告诉我,我怎么能创建一个复合键propery ????

mysql composite-key composite-primary-key

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

复合键的索引是否足够?

这就是我的表格:

CREATE TABLE pics(
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT,
  page INTEGER,
  w INTEGER,
  h INTEGER,
  FOREIGN KEY(page) REFERENCES pages(id) ON DELETE CASCADE,
  UNIQUE(name, page)
);

CREATE INDEX "myidx" ON "pics"("page");  # is this needed?
Run Code Online (Sandbox Code Playgroud)

所以UNIQUE(name, page)应该创建一个索引.但是这个索引是否足以进行page仅涉及该字段的快速查询?就像选择一组"照片"一样WHERE page = ?.还是JOIN pages.id ON pics.page?或者我应该只为页面字段创建另一个索引(myidx)?

sql sqlite indexing performance composite-key

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

如何在Boost multi_index复合键中擦除?

我正在使用MEM_FUN检查这个 Boost multi_index复合键

有人能告诉我如何为这个例子实现擦除功能吗?

现在我在做

Name_set_by_last::iterator mitchells = names.get<last>().find("mitchell");
names.erase(mitchells );//shows error
Run Code Online (Sandbox Code Playgroud)

c++ boost composite-key boost-multi-index

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

Jooq如何基于复合键查询实体

如何在Jooq中基于复合键查询实体?例如:

UserAttempts org.jooq.impl.DAOImpl.findById(Record2<UInteger, String> id)
Run Code Online (Sandbox Code Playgroud)

id是一个复合键.怎么用Record2<UInteger, String>

java sql composite-key jooq

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