gpt4 book ai didi

mysql - SQL从外部表varchar生成外键id?

转载 作者:行者123 更新时间:2023-11-29 16:54:29 28 4
gpt4 key购买 nike

我正在制作一个 JAVA EE 应用程序,在生产中我必须多次删除和生成数据库。由于自动增量的性质,我无法在重新填充表后简单地将外键设置为另一个表的主键。

示例:

INSERT INTO `krak`.`person` (`email`, `firstname`, `lastname`, `idaddress`) VALUES 
('jonas@example.com', 'Jonas', 'Sørensen');

INSERT INTO `krak`.`phone` (`description`, `number`, `idperson`) VALUES
('Noka 3210', '203948129', '1');

在 krak 模式中删除和创建 person 时,由于自动增量,第二次创建时他的主键将不再是 1,而是 2。

有没有一种方法可以让我做类似的事情:

INSERT INTO `krak`.`phone` (`description`, `number`, `idperson`) VALUES 
('Noka 3210', '203948129', 'WHERE 'krak'.'person' email = hisEmail');

我知道这是一个愚蠢的例子,但我希望它向您展示我想要做什么:)

最佳答案

如果我正确理解了这些问题,我认为您的问题是关于 krak.phone 表的。您想要多次删除并重新创建 krak.phone 表。如果这是正确的,那么我建议您使用存储过程插入基于 krak.person 的 krak.phone 中。

例如,

INSERT INTO  `krak`.`phone` (`description`, `number`, `idperson`) 
SELECT 'Noka 3210', '203948129', ID FROM krak.person P WHERE P.email = hisEmail;

关于mysql - SQL从外部表varchar生成外键id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52634088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com