标签: foreign-keys

将SQL语句'LIKE'转换为JPQL语句

我想在eclipse JPQL查询中编写这个SQL语句.它适用于SQL,但我不确定如何在eclipse中编写它.

SELECT * 
FROM hardware h
WHERE h.`Staffid` LIKE '%150%'
Run Code Online (Sandbox Code Playgroud)

我在硬件表中的staffid是员工表的staffid主键的外键.所以硬件表中的工作人员是

private Staff staff;
Run Code Online (Sandbox Code Playgroud)

这是我编写的用于运行搜索的内容:

@SuppressWarnings("unchecked")
public List<Hardware> searchstaff(Staff a) {
    try {
        entityManager.getTransaction().begin();             

        Query query = entityManager
            .createQuery("SELECT st from Hardware st where st.staff LIKE :x");
        query.setParameter("x", a);

        List<Hardware> list = query.getResultList(); 
        entityManager.getTransaction().commit();         
        return list;                     
    } catch (Exception e) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它表明

javax.servlet.ServletException: java.lang.IllegalStateException: 
Exception Description: Transaction is currently active 
Run Code Online (Sandbox Code Playgroud)

当我运行搜索.

任何人都可以帮我纠正吗?

sql foreign-keys jpql

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

使用Django Shell实例化具有Foreignkey属性的对象

我的问题很简单:

在Django Shell中,如何实例化需要外键属性的对象?

models.py

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

class Album(models.Model):
    artist = models.ForeignKey(Musician)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

在django shell中...

p = Person(
        first_name="Fred"
       ,last_name="Flintstone"
       ,instrument="guitar"
    )

p.save()

...

a = Album(
        artist = " "               #<------ WHAT DO I PUT HERE ? :)))))
       ,name="u rock "
       ,release_date ="today"
       ,num_stars="4"
     )
a.save()
Run Code Online (Sandbox Code Playgroud)

谢谢!

艾玛迪斯

shell foreign-keys django-models

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

MySQL错误1452 - 无法插入数据

我将一些数据插入以下MySQL表:

CREATE TABLE genotype
(
Genotype VARCHAR(20),
Fitness FLOAT NULL,
Tally INT NULL,
PRIMARY KEY (Genotype)
)ENGINE=InnoDB;


CREATE TABLE gene
(
Gene VARCHAR(20),
E FLOAT NOT NULL,
Q2 FLOAT NOT NULL, 
PRIMARY KEY (Gene)
)ENGINE=InnoDB;

CREATE TABLE genotypegene
(
Genotype VARCHAR(20),
Gene VARCHAR(20),
FOREIGN KEY (Genotype) REFERENCES genotype(Genotype),
FOREIGN KEY (Gene) REFERENCES gene(Gene)
)ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

我首先将数据插入基因型/基因,但在尝试插入基因型时会出现以下错误:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`populationdb`.`genotypegene`, CONSTRAINT `genotypegene_ibfk_2` FOREIGN KEY (`Gene`) REFERENCES `gene` (`Gene`))
Run Code Online (Sandbox Code Playgroud)

我在这个表中插入的数据是:Genotype1,Gene1 …

mysql foreign-keys mysql-error-1452

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

如何使用两个外键的两个主键创建表?

create table Machine
(
 Machine_ID int primary key,
 Machine_Name varchar(30)
 Machine_Title varchar(30)
)
create table Part
(
 Part_ID int primary key,
 Part_Name varchar(30),
 Part_Description varchar(30)
)

//How do I make this table below?
create table Machine-Part
(
  Machine_ID int foreign key references (Machine.Machine_ID),
  Part_ID int foreign key references (Part.Part_ID)
  Factory_Note varchar(30);
) 
Run Code Online (Sandbox Code Playgroud)

Mysql抱怨语法有问题?

期望的结果:让表'Machine-Part'使用'Machine_ID'和'Part_ID'作为两个主键(它们都是外键).

mysql foreign-keys primary-key composite-primary-key

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

如何在phpMyAdmin中更改外键

我在我的mysql数据库中设置了一个外键:

ALTER TABLE `gameplayers` ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE CASCADE ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

但是,我不确定我是否想要ON UPDATE和ON DELETE.

所以我进入我的phpAdmin,点击Structure选项卡的Index部分中的编辑铅笔图标,我得到这个:

警告:("PRIMARY"必须是主键的名称,而且只能是主键的名称!)

是否必须手动完成更改?即铅笔图标将无法正常工作.

另外:外键对mysql搜索具有相同的速度加成效果,类似于索引?

mysql foreign-keys

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

如何根据事件关联3个表

我有一张表,其中包含有关不同类型事件的信息,这些信息可由民事和工人两类人员完成

所以对于他们每个人我有他们各自的表

civil{  civil_id, name, age,telephone...} the  primary key is civil_id

worker{ worker_id, name, duty, department...} the  primary key is worker_id
Run Code Online (Sandbox Code Playgroud)

然后事件表包含所有可能事件的列表

event {type_of_event} the  primary key is type_of_event
Run Code Online (Sandbox Code Playgroud)

然后我计划将信息存储在其他表中

与事件类型,完成工作的人(工人或民事)

id  event_type       date      person
-----------------------------------
1   type1         12-12-12     x 
2   type1         05-12-10     y
3   type2         02-12-12     y
Run Code Online (Sandbox Code Playgroud)

现在,在这个设计,我不知道如何与人谁如果做的工作,我就只有一个什么样的人(又名公民)我想只有亲自领域的civil_id存放在这最后的表....但如何知道这是民用还是工人,我还需要其他中间表吗?

sql database-design foreign-keys relational-database

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

如何检查外键是否存在?

我想在表中找到一个外键,但是有重命名/更改主键的更改.如何确定表中的外键和主键?

相关代码:

SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
         WHERE CONSTRAINT_NAME = 'FK_Name'
Run Code Online (Sandbox Code Playgroud)

sql sql-server foreign-keys

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

错误1452 MySQL

将数据插入空表,但得到错误1452.我不确定为什么MySQL在错误中提到NameInfo表.

CREATE TABLE NameInfo (
Language VARCHAR(7) NOT NULL,
Status VARCHAR(13) NOT NULL, 
Standard VARCHAR(13) NOT NULL, 
Name VARCHAR(13) NOT NULL, 
Name_ID INT(4) NOT NULL, 
Place_ID INT(9) NOT NULL, 
Supplier_ID INT(4) NOT NULL, 
Date_Supplied DATE NOT NULL, 
PRIMARY KEY (Name_ID),
FOREIGN KEY (Supplier_ID) REFERENCES Supplier(Supplier_ID),
FOREIGN KEY (Place_ID) REFERENCES Place(Place_ID) 
);


CREATE TABLE Departments ( 
Dept_ID INT(6) NOT NULL,
Dept_NAME VARCHAR(25) NOT NULL, 
DeptHead_ID INT(6) NOT NULL,
DeptAA VARCHAR(20) NOT NULL, 
ParentDept_ID INT(4) NOT NULL,
Location VARCHAR(10) NOT NULL, 
DeptType …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys

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

SQLite外键无法正常工作

以下是创建表的查询:

CREATE TABLE "FacilityRating"(
    "FacilityRatingId" INTEGER PRIMARY KEY NOT NULL,
    "Stars" VARCHAR,
    "Facility_FacilityId" INTEGER,
    "User_UserId" INTEGER,
    FOREIGN KEY (Facility_FacilityId)
        REFERENCES Facility(FacilityId)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    FOREIGN KEY (User_UserId)
        REFERENCES User(UserId)
        ON DELETE CASCADE
        ON UPDATE CASCADE
)
Run Code Online (Sandbox Code Playgroud)

然而,当我在插入新行Facility_FacilityIdUser_UserId一些随机数,SQLite不给错误,但增加了也无妨.

这是一个快照:

在此输入图像描述

有什么暗示这里发生了什么?我正在使用SQLite Manager,一个Mozilla Firefox附加组件

sqlite foreign-keys sqlitemanager

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

如何仅导出MySQL外键

有谁知道如何导出,转储数据库的所有外键?我想修改字段,外键是有问题的,所以我想删除所有外键,并在更改完成后重新添加它们。

问候,威廉

mysql export dump foreign-keys save

2
推荐指数
3
解决办法
2462
查看次数