首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel中两个不同数据库之间的匹配ID

Laravel中两个不同数据库之间的匹配ID
EN

Stack Overflow用户
提问于 2020-03-30 21:15:51
回答 1查看 206关注 0票数 1

我想试试如何在拉拉维尔的两个不同的数据库之间进行匹配。

我用的是5.7版的Laravel。

为了简化我的数据库,假设一个表在DB1中称为Employee,而另一个表在DB2中称为Worker。

两个表中的一个主键是ID,应该匹配ID。

如果Laravel不允许这样做,我也愿意知道如何在mySql中进行匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的字段(或字段集合)。

代码语言:javascript
运行
复制
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

因此,在这个示例中,位于名为column Orderstable中的名为Orderscolumn将通过foreign key链接到位于table中的名为PersonsPersonID

阅读更多这里这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60939661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档