Articles of foreign keys

Chave estrangeira do MySQL InnoDB entre diferentes bancos de dados

Eu gostaria de saber se é possível no InnoDB no MySQL ter uma table com chave estrangeira que faça referência a outra tabela em um database diferente? E se sim, como isso pode ser feito?

As colunas da tabela com uma chave estrangeira podem ser nulas?

Por exemplo, eu tenho uma tabela que possui várias colunas de ID para outras tabelas. Eu quero uma chave estrangeira para forçar a integridade somente se eu colocar dados lá. Se eu fizer uma atualização em um momento posterior para preencher essa coluna, ele ainda verificará a restrição (isso provavelmente depende do servidor de database, […]

Como posso INSERIR dados em duas tabelas simultaneamente no SQL Server?

Digamos que minha estrutura de tabela seja algo assim: CREATE TABLE [dbo].[table1] ( [id] [int] IDENTITY(1,1) NOT NULL, [data] [varchar](255) NOT NULL, CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED ([id] ASC) ) CREATE TABLE [dbo].[table2] ( [id] [int] IDENTITY(1,1) NOT NULL, [table1_id] [int] NOT NULL, [data] [varchar](255) NOT NULL, CONSTRAINT [PK_table2] PRIMARY KEY CLUSTERED ([id] ASC) ) […]

Limitar as escolhas de chave estrangeira em selecionar em um formulário inline no admin

A lógica é do modelo é: Um Building tem muitos Rooms Um Room pode estar dentro de outro Room (um armário, por exemplo – ForeignKey em ‘self’) Um Room só pode estar dentro de outro Room no mesmo edifício (esta é a parte complicada) Aqui está o código que tenho: #spaces/models.py from django.db import models […]

Adicionar chave estrangeira à tabela existente

Eu quero adicionar uma chave estrangeira para uma tabela chamada “katalog”. ALTER TABLE katalog ADD CONSTRAINT `fk_katalog_sprache` FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL; Quando tento fazer isso, recebo esta mensagem de erro: Error Code: 1005. Can’t create table ‘mytable.#sql-7fb1_7d3a’ (errno: 150) Erro no status INNODB: 120405 14:02:57 […]

Necessário para unir 2 tabelas com seus FKs em uma terceira tabela

Então, basicamente, eu estou seguindo uma pergunta tutorial que me pergunta o seguinte. Eu não estou muito certo de como juntar 2 mesas que não contenham as outras FK, suas (ie ambas as suas FKs) estão localizadas em uma terceira mesa. Eu poderia obter alguma ajuda / explicação? Minha resposta SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM […]

Ruby on Rails. Como eu uso o método .build do Active Record em um: pertence ao relacionamento?

Eu tenho sido incapaz de encontrar qualquer documentação sobre o método .build no Rails (atualmente estou usando 2.0.2). Por meio da experimentação, parece que você pode usar o método de compilation para adicionar um registro a um relacionamento has_many antes de salvar qualquer registro. Por exemplo: class Dog < ActiveRecord::Base has_many :tags belongs_to :person end […]

A chave estrangeira melhora o desempenho das consultas?

Suponha que eu tenha 2 tabelas, produtos e categorias de produto. Ambas as tabelas têm relação em CategoryId. E esta é a consulta. SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; Quando eu crio o plano de execução, a tabela ProductCategories […]

Erro MySql 150 – Chaves Estrangeiras

Quando eu executo as duas consultas seguintes (eu as tirei para absolutamente necessário): mysql> CREATE TABLE foo(id INT PRIMARY KEY); Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE bar ( id INT, ref INT, FOREIGN KEY (ref) REFERENCES foo(id)) ENGINE InnoDB; Eu recebo o seguinte erro: ERRO 1005 (HY000): Não é possível criar […]

MySQL Errno 150

Estou criando algumas tabelas simples e não consigo passar este erro de chave estrangeira e não sei por quê. Aqui está o script abaixo. create TABLE Instructors ( ID varchar(10), First_Name varchar(50) NOT NULL, Last_Name varchar(50) NOT NULL, PRIMARY KEY (ID) ); create table Courses ( Course_Code varchar(10), Title varchar(50) NOT NULL, PRIMARY KEY (Course_Code) […]