我想试试如何在拉拉维尔的两个不同的数据库之间进行匹配。
我用的是5.7版的Laravel。
为了简化我的数据库,假设一个表在DB1中称为Employee,而另一个表在DB2中称为Worker。
两个表中的一个主键是ID,应该匹配ID。
如果Laravel不允许这样做,我也愿意知道如何在mySql中进行匹配。
发布于 2020-03-30 23:29:24
引用这个答案这里
您需要使用触发器管理跨数据库的引用约束。*基本上您创建一个insert,update触发器来验证主键表中的键是否存在。如果密钥不存在,则还原插入或更新,然后处理异常。 示例: 在dbo.MyTable上创建触发器dbo.MyTable,插入后,如果不存在更新为Begin (从PK选择PK in (从插入的OtherDB.dbo.TableName选择PK)开始--在这里处理引用错误
编辑:只是为了澄清。这不是执行引用完整性的最佳方法。理想情况下,您希望两个表位于同一个db中,但如果这是不可能的话。那么以上这些对你来说是一项潜在的工作。
正如在引用的答案中所提到的,最好的方法是将表放在同一个数据库中。如果您可以这样做,那么只需在它们之间添加一个foreign key:
FOREIGN KEY constraint是一个键,用于将两个表连接在一起。
FOREIGN KEY是指一个表中引用另一个表中的PRIMARY KEY的字段(或字段集合)。
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);因此,在这个示例中,位于名为column Orders的table中的名为Orders的column将通过foreign key链接到位于table中的名为Persons的PersonID。
https://stackoverflow.com/questions/60939661
复制相似问题