有没有办法使用模型的整数ID设置外键关系? 这将用于优化目的。 例如,假设我有一个Employee模型: class Employee(models.Model): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) type = models.ForeignKey('EmployeeType') 和 EmployeeType(models.Model): type = models.CharField(max_length=100) 我希望拥有无限制员工types的灵活性,但是在部署的应用程序中,可能只有一个types,所以我想知道是否有一种方法来硬编码id并设置这种关系。 这样,我可以避免数据库调用首先获得EmployeeType对象。
我试图在Laravel中创build外键,但是当我使用artisan迁移我的表时,我抛出了以下错误: [Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL : alter table `priorities` add constraint priorities_user_id_foreign foreign key (`user_id`) references `users` (`id`)) 我的迁移代码是这样的: 优先级迁移文件 public function up() { // Schema::create('priorities', function($table) { $table->increments('id', true); $table->integer('user_id'); $table->foreign('user_id')->references('id')->on('users'); $table->string('priority_name'); $table->smallInteger('rank'); $table->text('class'); $table->timestamps('timecreated'); }); } /** * Reverse the migrations. * * @return void */ […]
我想添加一个外键到一个名为“katalog”的表。 ALTER TABLE katalog ADD CONSTRAINT `fk_katalog_sprache` FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL; 当我尝试这样做时,我收到此错误消息: Error Code: 1005. Can't create table 'mytable.#sql-7fb1_7d3a' (errno: 150) INNODB状态中的错误: 120405 14:02:57 Error in foreign key constraint of table mytable.#sql-7fb1_7d3a: FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET […]
据我所知,外键(FK)被用来帮助程序员以正确的方式处理数据。 假设一个程序员实际上已经以正确的方式来做这件事了,那么我们是否真的需要外键的概念呢? 有没有其他用途的外键? 我在这里错过了什么?
为什么我的群组上没有TRUNCATE ? 即使我有ON DELETE CASCADE SET我得到: 错误1701(42000):无法截断在外键约束中引用的表( mytest ,CONSTRAINT instance_ibfk_1 FOREIGN KEY( GroupID )REFERENCES mygroup ( ID )) drop database mytest; create database mytest; use mytest; CREATE TABLE mygroup ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE=InnoDB; CREATE TABLE instance ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, GroupID INT NOT NULL, DateTime […]
我有两个表, Table JOB和Table USER ,这里是结构 CREATE TABLE JOB ( ID NUMBER NOT NULL , USERID NUMBER, CONSTRAINT B_PK PRIMARY KEY ( ID ) ENABLE ); CREATE TABLE USER ( ID NUMBER NOT NULL , CONSTRAINT U_PK PRIMARY KEY ( ID ) ENABLE ); 现在,我想添加外键约束JOB引用到USER表,如 Alter Table JOB ADD CONSTRAINT FK_USERID FOREIGN KEY(USERID) REFERENCES USER(ID); 这抛出了Oracle […]
我想知道是否有可能在MySQL InnoDB有一个外键引用不同的database另一个表的表? 如果是这样,可以怎么做?
新版本的SQLite有强制外键约束的能力,但是为了向后兼容,你必须为每个数据库连接单独打开它! sqlite> PRAGMA foreign_keys = ON; 我正在使用SQLAlchemy – 我怎样才能确保它始终打开? 我试过的是这样的: engine = sqlalchemy.create_engine('sqlite:///:memory:', echo=True) engine.execute('pragma foreign_keys=on') …但它不工作!…我错过了什么? 编辑:我认为我的真正的问题是,我有不止一个版本的SQLite安装,并没有使用最新的Python! >>> import sqlite3 >>> print sqlite3.sqlite_version 3.3.4 但是我只是下载了3.6.23,并把exe文件放在我的项目目录下! 我怎样才能找出它正在使用的.exe,并改变它?
是否有可能通过脚本/工具生成基于表fk关系的删除语句。 即我有表:DelMe(ID),有30个表的fk引用它的ID,我需要先删除,有一些工具/脚本,我可以运行,将生成基于FK关系的30删除语句为了我 ? (顺便说一句,我知道关于级联删除关系,我不能在这个现有的数据库中使用它) 我正在使用Microsoft SQL Server 2008
我正在做一些数据库应用程序的维护工作,并且我发现,尽pipe来自一个表的值是以外键的forms使用,但是在表中没有外键约束。 我试图在这些列上添加FK约束,但是我发现,因为从以前的错误已经被天真地纠正,表中已经有一个坏数据的负载,我需要find行匹配到另一个表,然后删除它们。 我在网上find了这种查询的一些例子,但是他们似乎都提供了例子而不是解释,我不明白他们为什么会这样工作。 有人可以向我解释如何构build一个查询,它返回所有在另一个表中没有匹配的行,以及它在做什么,这样我就可以自己做这些查询,而不是为了这个混乱中的每个表而跑到SO没有FK限制?