[英]Is it possible to reference a primary key in one table as a foreign key constraint across more than 2 tables?
我目前正在通过phpmyadmin服务器使用sql在机场上建立数据库后端系统。 该标准并不意味着是完美的,但查询背后的想法之一是想象客户或航班调度员可能正在查看表格。 我想知道是否有可能在两个或更多表中将主键作为外键引用。 在下面的示例中,我想在底部的2个表中将型号作为外键引用。 我确保类型和字符数相同。
CREATE TABLE Aircraft_Model
(Model_Number varchar (12) NOT NULL,
seat_capacity int (3),
CONSTRAINT pk7 primary key (Model_Number));
CREATE TABLE Licence_type
(Rank varchar (25) NOT NULL,
Model_Number varchar (12),
CONSTRAINT pk9 primary key (Rank));
CREATE TABLE Aircraft
(Aircraft_ID varchar (4) NOT NULL,
Model_Number varchar(12),
airport_base text(13),
CONSTRAINT pk1 PRIMARY KEY (Aircraft_ID));
这可能吗? 我只希望数据库能够执行约12-15个简单查询。
添加外键的语法会是这样吗?
ALTER TABLE Aircraft
ADD CONSTRAINT fk1 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model
从单独的表(如Licence_type)中引用的同一外键是否需要添加单独的约束,还是可以从具有相同fk1编号的同一表中添加?
我想知道是否有可能在两个或更多表中将主键作为外键引用。
如果您的意思是“两个或多个表是否可以具有引用同一列的外键?”,那么可以。 这似乎就是您的意思,但这并不是大多数人谈论“跨2个或更多表的外键”时的意思。
声明两个不同的独立约束。
ALTER TABLE Aircraft
ADD CONSTRAINT fk1 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model (Model_Number);
ALTER TABLE License_Type
ADD CONSTRAINT fk2 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model (Model_Number);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.