我正在制作一个javaee应用程序,在生产中我不得不多次删除并生成db。由于autoincrements的特性,在重新填充表之后,我不能简单地将外键设置为另一个表的主键。
例子:
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模式中的人时,他的主键不会是1,当他第二次被创建时,由于自动递增,主键将是2。
有没有什么方法可以让我做一些像:
INSERT INTO `krak`.`phone` (`description`, `number`, `idperson`) VALUES
('Noka 3210', '203948129', 'WHERE 'krak'.'person' email = hisEmail');
我知道这是一个愚蠢的例子,但我希望它能告诉你我想做什么:)
1条答案
按热度按时间q9yhzks01#
如果我理解正确的话,我想你的问题是关于krak.phone table的。你想多次删除并重新创建krak.phone表。如果是这样,那么我建议您使用一个存储过程来基于krak.person插入krak.phone。
例如,