Tag: 外键关系

SQLite外键

我正在从http://www.sqlite.org/foreignkeys.html SQLite文档的说明,但是我尝试添加一个外键失败。 这里是我的创build语句: CREATE TABLE checklist ( _id INTEGER PRIMARY KEY AUTOINCREMENT, checklist_title TEXT, description TEXT, created_on INTEGER, modified_on INTEGER ); CREATE TABLE item ( _id INTEGER PRIMARY KEY AUTOINCREMENT, FOREIGN KEY(checklist_id) REFERENCES checklist(_id), item_text TEXT, item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER ); 第一张桌子被罚款。 第二条语句发生错误。 我已经尝试了在事务中包装这两个查询,而没有。 这是错误: CREATE TABLE item(_id INTEGER PRIMARY KEY […]

SqlAlchemy – 通过关系属性进行过滤

我没有太多的SQLAlchemy的经验和一个问题,我不能解决,但寻找一个尝试了很多的代码。 这是我的类(简化为最重要的代码): class Patient(Base): __tablename__ = 'patients' id = Column(Integer, primary_key=True, nullable=False) mother_id = Column(Integer, ForeignKey('patients.id'), index=True) mother = relationship('Patient', primaryjoin='Patient.id==Patient.mother_id', remote_side='Patient.id', uselist=False) phenoscore = Column(Float) 我想询问所有的病人,他们的母亲的病史是(例如)== 10 据说,我尝试了很多代码,但我没有得到它。 在我看来,逻辑上的解决办法是 patients = Patient.query.filter(Patient.mother.phenoscore == 10) 因为你可以在输出时访问每个元素的.mother.phenoscore,但是这个代码不会这样做。 是否有(直接的)可能性根据关系的属性进行过滤(无需编写SQL语句或额外的连接语句),我需要多次这样的filter。 即使没有简单的解决办法,我对所有的答案感到高兴 非常感谢克里斯托

SQL Server 2008:表中的列与现有主键或唯一约束不匹配

我需要对SQL Server 2008数据库进行一些更改。 这需要创build一个新表,并在新表中插入一个引用已有表的主键的外键。 所以我想在我的新tblTwo之间build立一个关系,它引用了tblOne的主键。 但是,当我试图做到这一点(通过SQL Serverpipe理工作室),我得到了以下错误: 表'tblOne'中的列与现有主键或UNIQUE约束不匹配 我不确定这是什么意思,我想知道是否有任何方法呢?

postgresql外键语法

我有两个表,你会看到我的posgresql代码下面。 第一个表的学生有两列,一个是student_name,另一个是主键student_id。 在我的第二个名为tests的表中,它有4列,一个用于subject_id,一个用于subject_name,然后一个用于学生最高评分最高的学生。 我试图让我的学生表中的student_id指向highestStudent_id。 这是我下面的代码,不知道如果语法是正确的: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); highestStudent_id SERIAL REFERENCES students是否正确地使用了最highestStudent_id SERIAL REFERENCES students ? 因为我看过另一个像highestStudent_id REFERENCES students(student_id)) 请问在postgresql中创build外键的正确方法是什么?

如何更改外键引用操作? (行为)

我build立了一个表,其中包含一个带有外键的列,设置为ON DELETE CASCADE (删除父项时删除子项) SQL命令是什么将其更改为ON DELETE RESTRICT ? (如果有孩子,不能删除父母)

entity framework代码 – 第一个空外键

我有一个User < Country模式。 用户属于一个国家,但可能不属于任何(空外键)。 我如何设置? 当我尝试插入一个空国家的用户,它告诉我,它不能为空。 模型如下: public class User{ public int CountryId { get; set; } public Country Country { get; set; } } public class Country{ public List<User> Users {get; set;} public int CountryId {get; set;} } 错误: A foreign key value cannot be inserted because a corresponding primary key value does not […]

SQL将外键添加到现有列

如果我在SQL Server 2008中使用以下SQL命令来更新具有外键约束的表: ALTER TABLE Employees ADD FOREIGN KEY (UserID) REFERENCES ActiveDirectories(id) UserID是Employees表中的FK列。 我想在我的ActiveDirectories表中引用UserID 。 我收到这个错误: 外键'UserID'在引用表'Employees'时引用无效列'UserID'。

如何在亚型中实施参照完整性

我在关系数据库中有以下表格: [Sensor] LocationId [PK / FK -> Location] SensorNo [PK] [AnalogSensor] LocationId [PK/FK -> Sensor] SensorNo [PK/FK -> Sensor] UpperLimit LowerLimit [SwitchSensor] LocationId [PK/FK -> Sensor] SensorNo [PK/FK -> Sensor] OnTimeLimit [Reading] LocationId [PK/FK -> Sensor] SensorNo [PK/FK -> Sensor] ReadingDtm [PK] [ReadingSwitch] LocationId [PK/FK -> Reading] SensorNo [PK/FK -> Reading] ReadingDtm [PK/FK -> Reading] […]

如何在MySQL中创build关系

在课堂上,我们都是“学习”数据库,每个人都在使用Access。 无聊的,我正在尝试做其他的课程,但用MySQL的原始SQL命令而不是使用Access。 我已经设法创build数据库和表,但现在我怎么做两个表之间的关系? 如果我有这样的两个表: CREATE TABLE accounts( account_id INT NOT NULL AUTO_INCREMENT, customer_id INT( 4 ) NOT NULL , account_type ENUM( 'savings', 'credit' ) NOT NULL, balance FLOAT( 9 ) NOT NULL, PRIMARY KEY ( account_id ) ) 和 CREATE TABLE customers( customer_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, address VARCHAR(20) NOT NULL, […]

在Django中使用的related_name是什么?

什么是ManyToManyField和ForeignKey字段有用的related_name参数? 例如,给定以下代码, related_name='maps'的效果是什么? class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))